summaryrefslogtreecommitdiff
path: root/doWalk.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-09 11:07:15 -0500
committerJeff Carr <[email protected]>2025-10-09 13:15:49 -0500
commitf47fbeed4d6b19f3859a3e4d417c4dc2592a5b38 (patch)
treed39ce05325b810b90e5d8e041a041fa36b2948c0 /doWalk.go
parent31da3672f58df9a80e32a846bc9ff7bed3fdeffd (diff)
more on processing incoming/
Diffstat (limited to 'doWalk.go')
-rw-r--r--doWalk.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/doWalk.go b/doWalk.go
new file mode 100644
index 0000000..bc2d999
--- /dev/null
+++ b/doWalk.go
@@ -0,0 +1,75 @@
+package main
+
+import (
+ "os"
+
+ "go.wit.com/lib/config"
+ "go.wit.com/lib/debian"
+ "go.wit.com/lib/protobuf/zoopb"
+ "go.wit.com/log"
+)
+
+func doWalk() (string, error) {
+ os.Chdir(me.mirrorsDir)
+
+ // 2. Scan pool directory for .deb files and gather info
+ log.Printf("Scanning for .deb files in %s\n", poolDir)
+ 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)
+ }
+
+ var counter int
+ for _, deb := range debInfos {
+ newdeb := new(zoopb.Package)
+ newdeb.Filename = deb.Filename
+ newdeb.MD5SUM = deb.MD5Sum
+ newdeb.SHA1 = deb.SHA1Sum
+ newdeb.SHA256 = deb.SHA256Sum
+
+ // 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 {
+ 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
+ }
+ }
+ counter += 1
+ me.pb.AppendByFilename(newdeb)
+ config.PrintStrings(newdeb)
+ // arch := deb.ControlData["Architecture"]
+ }
+
+ // footer := me.pb.PrintTable()
+ // log.Info("found so far:", footer)
+
+ config.Save(me.pb)
+ log.Printf("add %d new packages. Total packages.Len()=%d\n", counter, me.pb.Len())
+ return "/home/mirrors/wit/ has been scanned for ne files", nil
+}