package main import ( "embed" "os" "path/filepath" "time" "go.wit.com/dev/alexflint/arg" "go.wit.com/lib/fhelp" "go.wit.com/lib/gui/prep" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) // sent from -ldflags var VERSION string var DATE string //go:embed resources/* var resources embed.FS var ARGNAME string = "go-deb" var argv args func main() { me = new(mainType) prep.Bash(ARGNAME, argv.DoAutoComplete) // this line should be: prep.Bash(argv) me.myGui = prep.Gui() // prepares the GUI package for go-args me.pp = arg.MustParse(&argv) if err := fhelp.ConfigureENV(); err != nil { badExit(err) } me.goSrc = os.Getenv("FORGE_GOSRC") if os.Getenv("FORGE_GOWORK") == "true" { me.hasWork = true } log.Info("GO src path", me.goSrc, "go.work is", me.hasWork) // set the go src path os.Setenv("REPO_WORK_PATH", me.goSrc) if argv.Forge != "" { me.forge = forgepb.Init() me.repo = me.forge.Repos.FindByFullPath(argv.Forge) if me.repo == nil { log.Info("repo not found", argv.Forge) me.repo = me.forge.FindByGoPath(argv.Forge) } if me.repo == nil { log.Info("forge failure. repo not found", argv.Forge) os.Exit(-1) } log.Info("found repo", me.repo.GetGoPath()) } // build() if argv.Show != nil { log.Info("todo: show", me.repo.GetGoPath()) okExit("") } me.basicWindow = makebasicWindow() // figure out where we are working from // os.Chdir to that directory var debpath string if me.repo == nil { os.Setenv("GO_DEB_CUSTOM", "true") debpath, _ = os.Getwd() } else { debpath = me.repo.GetFullPath() } _, basename := filepath.Split(debpath) me.goPath = basename os.Chdir(debpath) // scan the repo me.cBox.addRepo() // look for a 'config' file in the repo if me.cBox.readControlFile() == nil { log.Warn("scan worked") } else { log.Warn("scan failed") } me.cBox.computeControlValues() // verify the values for the package if argv.Auto { shell.TestTerminalColor() // basicWindow.Show() // broken gui package. convert to protobuf if ok, err := me.cBox.buildPackage(); ok { log.Info("build worked") } else { log.Warn("build failed:", err) os.Exit(-1) } os.Exit(0) } if argv.Gui != nil { // only load teh toolkit if you get this far me.myGui.Start() // loads the GUI toolkit me.basicWindow.Show() debug() } log.Info("go-deb: nothing to do in argv") os.Exit(0) } func debug() { time.Sleep(2 * time.Second) for { log.Info("idle loop() todo: could check for things here") time.Sleep(90 * time.Second) } }