summaryrefslogtreecommitdiff
path: root/subCommand.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-19 15:29:02 -0500
committerJeff Carr <[email protected]>2025-10-19 15:29:02 -0500
commit3246e9b1f7ba7b983ca536f06d1dbbb636d1ad5b (patch)
treefc7e065170afb516ecb9d77401e4aec8ec8b3743 /subCommand.go
parent1a618273bf123cef8a91cccd191b32b605c90abc (diff)
redo argv name
Diffstat (limited to 'subCommand.go')
-rw-r--r--subCommand.go112
1 files changed, 112 insertions, 0 deletions
diff --git a/subCommand.go b/subCommand.go
new file mode 100644
index 0000000..5c59227
--- /dev/null
+++ b/subCommand.go
@@ -0,0 +1,112 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+import (
+ "go.wit.com/lib/gui/shell"
+ "go.wit.com/lib/protobuf/forgepb"
+ "go.wit.com/log"
+)
+
+func doSubcommand() (string, error) {
+ var s string
+ var err error
+
+ log.Info("Starting forge with subcommand:", me.argv.Cmd)
+
+ //// start standard argv subcommand processing here ////
+ if argv.Dev != nil {
+ // first find the repos or gopaths to operate on
+ if argv.Dev.Config != nil {
+ doConfig()
+ okExit("")
+ }
+ s, err := doDev()
+ if err != nil {
+ me.argv.BadExit(s, err)
+ }
+ me.argv.GoodExit(s)
+ }
+
+ if argv.Commit != nil {
+ s, err = doCommit()
+ }
+
+ if argv.Dev != nil {
+ s, err = doDev()
+ }
+
+ if argv.Fixer != nil {
+ s, err = doFix()
+ }
+
+ if argv.Clean != nil {
+ s, err = doClean()
+ }
+
+ if argv.Mode != nil {
+ s, err = doMode()
+ }
+
+ if argv.Normal != nil {
+ if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL {
+ s, err = doNormalAll()
+ } else {
+ // attempt to switch into Normal mode
+ s, err = doNormalAttempt()
+ }
+ }
+
+ if argv.Merge != nil {
+ s, err = doMerge()
+ }
+
+ if argv.Add != nil {
+ doAdd()
+ }
+
+ if argv.Pull != nil {
+ doPull()
+ }
+
+ if argv.Show != nil {
+ s, err = doShow()
+ }
+
+ if argv.Patch != nil {
+ s, err = doPatch()
+ }
+
+ if argv.Generate != nil {
+ s, err = doGenerate()
+ }
+
+ if argv.Whatchanged != nil {
+ // this might be deprecated by the git devs
+ // I put it here because of finger memory and it's nice
+ // for command line completion
+ r := shell.RunRealtime([]string{"bash", "-c", "git log"})
+ s = "git whatchanged is now: todo"
+ err = r.Error
+ }
+
+ if argv.Rebuild != nil {
+ // attempts to download all the sources
+ // and binaries needed to build forge
+ s, err = doRebuild()
+ }
+
+ if argv.Verify != nil {
+ s, err = doVerify()
+ }
+ //// end standard argv subcommand processing here ////
+
+ // if the gui starts, it doesn't yet go to the end normally
+ if argv.Gui != nil {
+ me.myGui.Start() // loads the GUI toolkit
+ doGui() // start making our forge GUI
+ debug() // sits here forever
+ }
+ return s, err
+}