summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-09 07:30:35 -0500
committerJeff Carr <[email protected]>2025-10-09 13:13:27 -0500
commit31da3672f58df9a80e32a846bc9ff7bed3fdeffd (patch)
tree6762cd3b6142c394778ac99a4cceb969bb4b1ec5
parent0f84c35582c4498e00839d782fea704cede98cd7 (diff)
start sorting the code out
-rw-r--r--argv.go13
-rw-r--r--main.go50
-rw-r--r--structs.go8
3 files changed, 54 insertions, 17 deletions
diff --git a/argv.go b/argv.go
index 346dc5d..ddbea91 100644
--- a/argv.go
+++ b/argv.go
@@ -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)
diff --git a/main.go b/main.go
index 5f70a23..fb8187e 100644
--- a/main.go
+++ b/main.go
@@ -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
}
diff --git a/structs.go b/structs.go
index b18e9a6..7219b05 100644
--- a/structs.go
+++ b/structs.go
@@ -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")
}