diff options
| -rw-r--r-- | main.go | 51 |
1 files changed, 46 insertions, 5 deletions
@@ -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") } |
