diff options
Diffstat (limited to 'argv.custom.go')
| -rw-r--r-- | argv.custom.go | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/argv.custom.go b/argv.custom.go new file mode 100644 index 0000000..c8c97be --- /dev/null +++ b/argv.custom.go @@ -0,0 +1,92 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +/* + this parses the command line arguements + this enables command line options from other packages like 'gui' and 'log' +*/ + +import ( + "os" + + "go.wit.com/lib/debugger" + "go.wit.com/lib/fhelp" + "go.wit.com/lib/gui/logsettings" + "go.wit.com/lib/protobuf/argvpb" + "go.wit.com/log" +) + +// sent via -ldflags +var VERSION string +var BUILDTIME string + +// used for shell auto completion +var APPNAME string = "wit" // todo: get this from $0 ? + +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) Buildtime() (string, string) { + return BUILDTIME, VERSION +} + +func (args) Version() string { + return "wit-test " + VERSION + " Built on " + BUILDTIME +} + +/* + handles shell autocomplete +*/ + +func (args) Appname() string { + return APPNAME +} + +func (args) ArgvGui() error { + me.myGui = fhelp.Gui() // adds the GUI package argv support + return nil +} + +func (a args) DoAutoComplete(pb *argvpb.Argv) { + base := []string{"build", "upgrade", "git", "publish", "pb", "linux", "droplet"} + base = append(base, "--version", "--force", "--all") + + // add these only if installed + if _, err := fhelp.CheckCmd("zood"); err == nil { + base = append(base, "zoo") + } + if _, err := fhelp.CheckCmd("forge"); err == nil { + base = append(base, "forge") + } + if _, err := fhelp.CheckCmd("go-clone"); err == nil { + base = append(base, "go-clone") + } + if areSuperuser() { + base = append(base, "upgrade") + base = append(base, "rdate") + } + if pb.Cmd == "" { + pb.SendStrings(base) + } else { + pb.SubCommand(pb.Goargs...) + } + os.Exit(0) +} |
