summaryrefslogtreecommitdiff
path: root/makePackagesFile.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-13 01:03:25 -0500
committerJeff Carr <[email protected]>2025-10-13 03:29:12 -0500
commitc48a87214660ab91e97361e3d227c3bcd93da3f9 (patch)
tree42547590b9d7f6fdf19c863b895ee339770c5d42 /makePackagesFile.go
parentd3278977a4b086dffe323a0870900a380f78a703 (diff)
make the checksums
Diffstat (limited to 'makePackagesFile.go')
-rw-r--r--makePackagesFile.go33
1 files changed, 32 insertions, 1 deletions
diff --git a/makePackagesFile.go b/makePackagesFile.go
index c19081d..7c05fea 100644
--- a/makePackagesFile.go
+++ b/makePackagesFile.go
@@ -2,7 +2,13 @@ package main
import (
"bufio"
+ "crypto/md5"
+ "crypto/sha1"
+ "crypto/sha256"
"errors"
+ "fmt"
+ "io"
+ "os"
"path/filepath"
"strings"
@@ -14,6 +20,7 @@ import (
)
func populateDebInfo(p *zoopb.Package) error {
+ // SIMPLE SANITY CHECKS
if p.DebInfo != nil {
// already added p.DebInfo
return nil
@@ -27,8 +34,31 @@ func populateDebInfo(p *zoopb.Package) error {
if r.Exit != 0 {
return errors.New("dpkg returned -1")
}
+ filedata, err := os.Open(fullname)
+ if err != nil {
+ return err
+ }
+ defer filedata.Close()
+ // SIMPLE SANITY CHECKS END
+
+ // SHA256 HASH
p.DebInfo = new(zoopb.DebInfo)
+ hMD5 := md5.New()
+ hSHA1 := sha1.New()
+ hSHA256 := sha256.New()
+
+ // TeeReader allows writing to multiple hashers at once
+ multiWriter := io.MultiWriter(hMD5, hSHA1, hSHA256)
+ if _, err := io.Copy(multiWriter, filedata); err != nil {
+ return err
+ }
+ p.DebInfo.SHA256 = fmt.Sprintf("%x", hSHA256.Sum(nil)) // should be the standard now
+ p.DebInfo.MD5SUM = fmt.Sprintf("%x", hMD5.Sum(nil)) // probably deprecate
+ // p.DebInfo.SHA1 = fmt.Sprintf("%x", hSHA1.Sum(nil)) // deprecated
+ // SHA256 HASH END
+
+ // PARSE "dpkg -I moon-buggy.deb", then exit as we are done
starting := true
all := strings.Join(r.Stdout, "\n")
scanner := bufio.NewScanner(strings.NewReader(all))
@@ -139,12 +169,13 @@ func populateDebInfo(p *zoopb.Package) error {
}
p.DebInfo.Description = description
default:
+ // This forces me(it could be you!) to fix this parser
varname2 := strings.TrimSuffix(varname, ":")
log.Printf("UNKNOWN: varname:%s varval:%s varname2=%s\n", varname, varval, varname2)
panic("fix mirrors populateDebInfo()")
}
}
- // log.Info("Ran:", cmd, r, err)
+ // pb.DebInfo should be correctly populated. You can verify these with "mirrors --verify"
return nil
}