diff options
| author | Jeff Carr <[email protected]> | 2025-10-09 07:30:35 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-10-09 13:13:27 -0500 |
| commit | 31da3672f58df9a80e32a846bc9ff7bed3fdeffd (patch) | |
| tree | 6762cd3b6142c394778ac99a4cceb969bb4b1ec5 | |
| parent | 0f84c35582c4498e00839d782fea704cede98cd7 (diff) | |
start sorting the code out
| -rw-r--r-- | argv.go | 13 | ||||
| -rw-r--r-- | main.go | 50 | ||||
| -rw-r--r-- | structs.go | 8 |
3 files changed, 54 insertions, 17 deletions
@@ -17,10 +17,13 @@ import ( var argv args type args struct { - Update *EmptyCmd `arg:"subcommand:update" help:"update the apt repo"` - DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` - Verbose bool `arg:"--verbose" help:"be loud about it"` - Force bool `arg:"--force" help:"rebuild everything"` + List *EmptyCmd `arg:"subcommand:list" help:"show the packages"` + Walk *EmptyCmd `arg:"subcommand:scan" help:"walk the filesystem for new .deb files"` + Update *EmptyCmd `arg:"subcommand:update" help:"update the apt repo"` + Incoming *EmptyCmd `arg:"subcommand:incoming" help:"handle the incoming directory"` + DryRun bool `arg:"--dry-run" help:"only show what would be packaged"` + Verbose bool `arg:"--verbose" help:"be loud about it"` + Force bool `arg:"--force" help:"rebuild everything"` } type EmptyCmd struct { @@ -39,7 +42,7 @@ func (args) Appname() string { } func (a args) DoAutoComplete(pb *prep.Auto) { - base := []string{"--version", "update", "--dry-run", "--force"} + base := []string{"--version", "update", "--dry-run", "--force", "incoming", "walk", "list"} if pb.Cmd == "" { pb.Autocomplete3(base) @@ -25,14 +25,9 @@ func main() { me = new(mainType) me.sh = prep.Bash3(&argv) // add support for bash autocomplete with go-arg - if argv.Update != nil { - if err := doDistro(); err != nil { - me.sh.BadExit("boo", err) - } - me.sh.GoodExit("") - } - os.Chdir("/home/mirrors/wit") + me.mirrorsDir = "/home/mirrors/wit" + // read in protobuf file me.pb = zoopb.NewPackages() me.pb.Filename = "/home/mirrors/mirrors.wit.com.pb" if err := config.Load(me.pb); err != nil { @@ -43,6 +38,45 @@ func main() { } } + var s string + var err error + if argv.Incoming != nil { + if s, err = doIncoming(); err != nil { + } + } + + if argv.Walk != nil { + if s, err = doWalk(); err != nil { + } + } + + if argv.List != nil { + footer := me.pb.PrintTable() + log.Info("found so far:", footer) + } + + if argv.Update != nil { + if err = doDistro(); err != nil { + me.sh.BadExit("boo", err) + } + me.sh.GoodExit("") + } + + log.Printf("You have %d packages in %s\n", me.pb.Len(), me.mirrorsDir) + if err != nil { + me.sh.BadExit(s, err) + } + me.sh.GoodExit(s) +} + +func doIncoming() (string, error) { + + return "", nil +} + +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) @@ -99,5 +133,5 @@ func main() { config.Save(me.pb) log.Info("len", me.pb.Len()) - me.sh.GoodExit("nothing to do") + return "/home/mirrors/wit/ has been scanned for ne files", nil } @@ -33,8 +33,8 @@ var me *mainType // this app's variables type mainType struct { - once sync.Once // one-time initialized data - sh *prep.Auto // more experiments for bash handling - pb *zoopb.Packages // the mirrors packages - // forge *forgepb.Forge // your customized repo preferences and settings + once sync.Once // one-time initialized data + sh *prep.Auto // more experiments for bash handling + pb *zoopb.Packages // the mirrors packages + mirrorsDir string // "/home/mirrors/wit") } |
