diff --git a/argv.go b/argv.go index 25e9a3c..4d8cc76 100644 --- a/argv.go +++ b/argv.go @@ -12,10 +12,6 @@ import ( "fmt" "os" "strings" - - "go.wit.com/lib/debugger" - "go.wit.com/lib/gui/logsettings" - "go.wit.com/log" ) var argv args @@ -36,39 +32,17 @@ type args struct { Recursive bool `arg:"--recursive" help:"go-clone --recursive"` Test bool `arg:"--test" help:"test build after everything else"` WITCOM bool `arg:"--witcom" help:"add the GPL header"` - Bash bool `arg:"--bash" help:"generate bash completion"` - BashAuto []string `arg:"--auto-complete" help:"does the actual autocompletion"` } type EmptyCmd struct { } -func init() { - if debugger.ArgDebug() { - log.Info("cmd line --debugger == true") - go func() { - log.Sleep(2) - debugger.DebugWindow() - }() - } - - if debugger.ArgLogger() { - log.Info("cmd line --loggger == true") - go func() { - log.Sleep(4) - logsettings.LogWindow() - logsettings.LogWindow() - }() - } -} - func (args) Version() string { return ARGNAME + " " + VERSION + " Built on " + BUILDTIME } -func (args) doBashAuto() { - argv.doBashHelp() - switch argv.BashAuto[0] { +func (a args) DoAutoComplete(argv []string) { + switch argv[0] { case "list": fmt.Println("--all --mine --favorites --private") case "debian": @@ -82,32 +56,10 @@ func (args) doBashAuto() { case "repomap-clone": fmt.Println("--repomap") default: - if strings.HasSuffix(argv.BashAuto[0], ARGNAME) { + if strings.HasSuffix(argv[0], ARGNAME) { // list the subcommands here fmt.Println("--bash list build debian install repomap-clone upgrade") } } os.Exit(0) } - -// prints help to STDERR // TODO: move everything below this to go-args -func (args) doBashHelp() { - if argv.BashAuto[1] != "''" { - // if this is not blank, then the user has typed something - return - } - if argv.BashAuto[0] != ARGNAME { - // if this is not the name of the command, the user already started doing something - return - } - if argv.BashAuto[0] == ARGNAME { - // me.argpp.WriteHelp(os.Stderr) - // return - } - fmt.Fprintln(os.Stderr, "") - fmt.Fprintln(os.Stderr, "list: show every package on mirrors.wit.com") - fmt.Fprintln(os.Stderr, "build: go build every package that identifies as a binary") - fmt.Fprintln(os.Stderr, "install: go install every package into ~/go/bin") - fmt.Fprintln(os.Stderr, "repomap-clone: go-clone every package from a gowebd repomap") - fmt.Fprintln(os.Stderr, "") -} diff --git a/doGui.go b/doGui.go index e6dd625..e1cb4cf 100644 --- a/doGui.go +++ b/doGui.go @@ -10,7 +10,6 @@ import ( "strings" "time" - "go.wit.com/gui" "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/virtpb" @@ -100,10 +99,6 @@ func switchDrive(blk *Block) { } func doGui() { - me.myGui = gui.New() - me.myGui.InitEmbed(resources) - me.myGui.Default() - mainWindow := gadgets.NewGenericWindow("RiscV Imager", "Show Drives") mainWindow.Custom = func() { log.Warn("Main window close") @@ -111,9 +106,6 @@ func doGui() { } drawWindow(mainWindow) - - // sits here forever - debug() } func drawWindow(win *gadgets.GenericWindow) { diff --git a/main.go b/main.go index a61a9ee..0d3321c 100644 --- a/main.go +++ b/main.go @@ -13,8 +13,7 @@ import ( "unicode" "go.wit.com/dev/alexflint/arg" - "go.wit.com/gui" - "go.wit.com/lib/fhelp" + "go.wit.com/lib/gui/prep" "go.wit.com/log" ) @@ -30,26 +29,10 @@ var resources embed.FS func main() { me = new(autoType) - gui.InitArg() + prep.Bash(ARGNAME, argv.DoAutoComplete) // todo: this line should be: prep.Bash(argv) + me.myGui = prep.Gui() // prepares the GUI package for go-args me.pp = arg.MustParse(&argv) - // check if the binary is being called to test - // if the plugin can actually loaded. This is a hack - // around needing a Test() plugin load function in GO - if gui.IsGoPluginTestHack() { - gui.CheckPlugin() - os.Exit(0) - } - - if argv.Bash { - fhelp.DoBash(ARGNAME) - os.Exit(0) - } - if len(argv.BashAuto) != 0 { - argv.doBashAuto() - os.Exit(0) - } - me.pb = NewBlocks() /* @@ -60,7 +43,10 @@ func main() { */ go listenForBlockEvents() - doGui() + + me.myGui.Start() // loads the GUI toolkit + doGui() // start making our forge GUI + debug() // sits here forever okExit("everything compiled") } diff --git a/structs.go b/structs.go index bac17be..2373661 100644 --- a/structs.go +++ b/structs.go @@ -6,17 +6,18 @@ package main import ( "go.wit.com/dev/alexflint/arg" "go.wit.com/gui" + "go.wit.com/lib/gui/prep" ) var me *autoType // this app's variables type autoType struct { - pp *arg.Parser // go-arg preprocessor - myGui *gui.Node // the gui toolkit handle - dd *gui.Node // the drives dropdown list - parted *gui.Node // the current drive to run parted on - currentDev *Block // the current dev entry to work on - pb *Blocks // the block dev protobuf - driveInfoBox *gui.Node // displays the drive info + pp *arg.Parser // go-arg preprocessor + myGui *prep.GuiPrep // the gui toolkit handle + dd *gui.Node // the drives dropdown list + parted *gui.Node // the current drive to run parted on + currentDev *Block // the current dev entry to work on + pb *Blocks // the block dev protobuf + driveInfoBox *gui.Node // displays the drive info }