summaryrefslogtreecommitdiff
path: root/makePackagesFile.go
blob: 9f28e464c5175cff6be2942b34b813364aa9b69b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
}