summaryrefslogtreecommitdiff
path: root/argv.custom.go
diff options
context:
space:
mode:
Diffstat (limited to 'argv.custom.go')
-rw-r--r--argv.custom.go92
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)
+}