summaryrefslogtreecommitdiff
path: root/makePackagesFile.go
diff options
context:
space:
mode:
Diffstat (limited to 'makePackagesFile.go')
-rw-r--r--makePackagesFile.go77
1 files changed, 77 insertions, 0 deletions
diff --git a/makePackagesFile.go b/makePackagesFile.go
new file mode 100644
index 0000000..9f28e46
--- /dev/null
+++ b/makePackagesFile.go
@@ -0,0 +1,77 @@
+package main
+
+import (
+ "strings"
+
+ "go.wit.com/lib/cobol"
+ "go.wit.com/lib/protobuf/zoopb"
+ "go.wit.com/log"
+)
+
+func getDebianControlFile(p *zoopb.Package, varname string) (string, string) {
+ switch varname {
+ case "Package":
+ return "Package", p.Package
+ case "Filename":
+ return "Filename", p.Filename
+ case "Version":
+ return "Version", p.Version
+ case "Architecture":
+ return "Architecture", p.Architecture
+ case "Maintainer":
+ return "Maintainer", p.DebInfo.Maintainer
+ // return "Maintainer", p.Author
+ case "Source":
+ return "Source", p.DebInfo.Source
+ case "Conflicts":
+ return "Conflicts", p.DebInfo.Conflicts
+ case "Packager":
+ return "Packager", p.DebInfo.Packager
+ // return "Packager", p.Packager
+ case "Depends":
+ return "Depends", p.DebInfo.Depends
+ case "BuildDepends":
+ return "Build-Depends", p.DebInfo.BuildDepends
+ case "InstalledSize":
+ return "Installed-Size", "222222222"
+ case "URL":
+ return "Homepage", p.DebInfo.URL
+ case "Size":
+ return "Size", "22222222"
+ case "BuildDate":
+ return "Build-Date", cobol.Time(p.BuildDate)
+ // case "SHA1":
+ // return "SHA1", p.DebInfo.SHA1
+ case "MD5SUM":
+ return "MD5Sum", p.DebInfo.MD5SUM
+ case "SHA256":
+ return "SHA256", p.DebInfo.SHA256
+ case "SHA512":
+ return "SHA512", "" // todo: implement or totally rediculously overkill ?
+ }
+ log.Info("DebInfo sent a field we didn't have. fix the code above", varname)
+ return "", ""
+}
+
+// make a list of the newest .deb files
+func doMakePackagesFile(all *zoopb.Packages) string {
+ var pfile string
+ for p := range all.IterAll() {
+ var controlfile string
+ parts, err := zoopb.GetDebInfoFields(p)
+ if err != nil {
+ log.Info(err)
+ }
+ for _, varname := range parts {
+ varname, varval := getDebianControlFile(p, varname)
+ varval = strings.TrimSpace(varval)
+ if varval == "" {
+ continue
+ }
+ controlfile += log.Sprintf("%s: %s\n", varname, varval)
+ }
+ controlfile += log.Sprintf("\n")
+ pfile += controlfile
+ }
+ return pfile
+}