summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go51
1 files changed, 46 insertions, 5 deletions
diff --git a/main.go b/main.go
index 6a5e8e6..e24fb14 100644
--- a/main.go
+++ b/main.go
@@ -4,6 +4,8 @@ import (
"embed"
"os"
+ "go.wit.com/lib/config"
+ "go.wit.com/lib/debian"
"go.wit.com/lib/gui/prep"
"go.wit.com/lib/protobuf/zoopb"
"go.wit.com/log"
@@ -31,15 +33,24 @@ func main() {
}
os.Chdir("/home/mirrors/wit")
+ pb := zoopb.NewPackages()
+ pb.Filename = "/home/mirrors/mirrors.wit.com.pb"
+ if err := config.Load(pb); err != nil {
+ if argv.Force {
+ config.Save(pb)
+ } else {
+ me.sh.BadExit("no config found. use --force to create one", err)
+ }
+ }
+
// 2. Scan pool directory for .deb files and gather info
log.Printf("Scanning for .deb files in %s\n", poolDir)
- debInfos, err := scanDebs(poolDir, 2)
+ debInfos, err := scanDebs(poolDir, 35)
if err != nil {
log.Printf("Failed to scan .deb files: %v\n", err)
me.sh.BadExit("scan pool scan dir", err)
}
- pb := zoopb.NewPackages()
for _, deb := range debInfos {
newdeb := new(zoopb.Package)
newdeb.Filename = deb.Filename
@@ -47,16 +58,46 @@ func main() {
newdeb.SHA1 = deb.SHA1Sum
newdeb.SHA256 = deb.SHA256Sum
- log.Info("%v", deb)
+ // log.Info("len(CONTROLDATA)", len(deb.ControlData))
+ // log.Sprintf("VAR='%s' VAL='%s'\n", varname, varvalue)
+ // log.Info("%v", deb.ControlData)
for varname, varvalue := range deb.ControlData {
- if varname == "Package" {
+ switch varname {
+ case "Package":
newdeb.Package = varvalue
+ case "Version":
+ newdeb.Version = varvalue
+ case "Git-Tag-Date":
+ log.Info("CONVERT THIS TO TIME", varvalue)
+ case "Depends":
+ newdeb.Depends = varvalue
+ case "Build-Depends":
+ newdeb.BuildDepends = varvalue
+ case "Architecture":
+ newdeb.Architecture = varvalue
+ case "Packager":
+ newdeb.Packager = varvalue
+ case "Package-Build-Date":
+ varvalue = "PackageBuildDate"
+ case "URL":
+ newdeb.URL = varvalue
+ default:
+ if ok, err := debian.SetString(newdeb, varname, varvalue); ok {
+ continue
+ } else if err != nil {
+ log.Printf("%v VAR='%s' VAL='%s'\n", err, varname, varvalue)
+ }
+ // todo: add to protomap
}
}
- pb.Append(newdeb)
+ pb.AppendByFilename(newdeb)
// arch := deb.ControlData["Architecture"]
}
+ footer := pb.PrintTable()
+ log.Info("found so far:", footer)
+
+ config.Save(pb)
log.Info("len", pb.Len())
me.sh.GoodExit("nothing to do")
}