package main import ( "embed" "go.wit.com/lib/config" "go.wit.com/lib/gui/prep" "go.wit.com/lib/protobuf/zoopb" "go.wit.com/log" ) // sent via -ldflags var VERSION string var BUILDTIME string // used for shell auto completion var ARGNAME string = "mirrors" // todo: get this from $0 ? //go:embed resources/* var resources embed.FS func main() { me = new(mainType) me.sh = prep.Bash3(&argv) // add support for bash autocomplete with go-arg me.mirrorsDir = "/home/mirrors/wit" // read in protobuf file me.pb = zoopb.NewPackages() me.pb.Filename = "/home/mirrors/mirrors.wit.com.pb" if err := me.pb.Load(); err != nil { if argv.Force { config.Save(me.pb) } else { me.sh.BadExit("no config found. use --force to create one", err) } } if me.sh.Cmd == "" { // default behavior when no argv s := log.Sprintf("You have %d packages in %s", me.pb.Len(), me.mirrorsDir) me.sh.GoodExit(s) } // default handling of argv subcommands var s string var err error if argv.Incoming != nil { s, err = doIncoming() } if argv.Walk != nil { s, err = doWalk() } if argv.List != nil { s, err = doList() } if argv.Update != nil { err = doDistro() } if argv.MakeDists != nil { s, err = doMakeDists("/home/mirrors/wit") } if err != nil { me.sh.BadExit(s, err) } me.sh.GoodExit(s) }