summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-09 12:26:27 -0500
committerJeff Carr <[email protected]>2025-10-09 12:26:27 -0500
commit518c69b4b689e40684356fcefa1e8698c3f3e0cb (patch)
tree0c13d8fa36ba7a8022c62a0bb6c7bd271c52c3a5 /main.go
parent7e7ec656192326f9acb6ce046cc142ee4f29dbb8 (diff)
standard syntax for subcommands
Diffstat (limited to 'main.go')
-rw-r--r--main.go113
1 files changed, 41 insertions, 72 deletions
diff --git a/main.go b/main.go
index 5f2ccf7..04a4f1e 100644
--- a/main.go
+++ b/main.go
@@ -69,6 +69,12 @@ func main() {
dumpDebug()
}
+ // if you are in "normal" mode, always run normal every time to catch accidental errors
+ // for example, if you accidentally changed branches from your user branch
+ if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL {
+ doNormal()
+ }
+
if me.sh.Cmd == "" {
s, err := doDefaultBehavior()
if err != nil {
@@ -96,117 +102,53 @@ func main() {
if argv.Commit != nil {
doCommit()
- okExit("")
}
if argv.Checkout != nil {
- if err := doCheckout(); err != nil {
- badExit(err)
- }
- okExit("")
+ err = doCheckout()
}
if argv.Dev != nil {
- s, err := doDev()
- if err != nil {
- me.sh.BadExit(s, err)
- }
- me.sh.GoodExit(s)
+ s, err = doDev()
}
if argv.Fixer != nil {
- s, err := doFix()
- if err != nil {
- me.sh.BadExit(s, err)
- }
- me.sh.GoodExit(s)
+ s, err = doFix()
}
if argv.Clean != nil {
- if err := doClean(); err != nil {
- badExit(err)
- }
- me.forge.ConfigSave()
- okExit("")
+ err = doClean()
}
if argv.Mode != nil {
- if s, err := doMode(); err != nil {
- me.sh.BadExit(s, err)
- } else {
- me.sh.GoodExit(s)
- }
+ s, err = doMode()
}
if argv.Normal != nil {
- if s, err := doNormal(); err != nil {
- me.sh.BadExit(s, err)
- } else {
- me.sh.GoodExit(s)
- }
- }
-
- // if you are in "normal" mode, always run normal every time to catch accidental errors
- // for example, if you accidentally changed branches from your user branch
- if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL {
- doNormal()
+ s, err = doNormal()
}
if argv.Merge != nil {
- if err := doMerge(); err != nil {
- badExit(err)
- }
- okExit("")
+ err = doMerge()
}
if argv.Add != nil {
doAdd()
- okExit("")
}
if argv.Pull != nil {
doPull()
- okExit("")
}
if argv.Show != nil {
- if argv.Show.Dirty != nil {
- doDirty()
- okExit("")
- }
-
- if argv.Show.Tag != nil {
- doTag()
- okExit("")
- }
-
- found := findRepos()
- if showUrls() {
- found.SortNamespace()
- footer := me.forge.PrintForgedTable(found)
- log.Info("repos with patches or unsaved changes:", footer)
- okExit("")
- }
- // print out the repos
- if argv.All {
- me.forge.PrintHumanTableFull(found)
- } else {
- me.forge.PrintDefaultTB(found)
- }
- okExit("")
+ s, err = doShow()
}
if argv.Patch != nil {
s, err = doPatch()
}
- // open the gui unless the user performed some other
- // basically, if you run just 'forge' it should open the GUI
-
if argv.Gui != nil {
- // if opening the GUI, always check git for dirty repos
- me.forge.CheckDirty()
-
me.myGui.Start() // loads the GUI toolkit
doGui() // start making our forge GUI
debug() // sits here forever
@@ -244,3 +186,30 @@ func doDefaultBehavior() (string, error) {
footer := me.forge.PrintDefaultTB(found)
return footer, nil
}
+
+func doShow() (string, error) {
+ if argv.Show.Dirty != nil {
+ doDirty()
+ return "dirty repos shown", nil
+ }
+
+ if argv.Show.Tag != nil {
+ doTag()
+ return "tags shown", nil
+ }
+
+ found := findRepos()
+ if showUrls() {
+ found.SortNamespace()
+ footer := me.forge.PrintForgedTable(found)
+ return "repos with patches or unsaved changes: " + footer, nil
+ }
+ var footer string
+ // print out the repos
+ if argv.All {
+ footer = me.forge.PrintHumanTableFull(found)
+ } else {
+ footer = me.forge.PrintDefaultTB(found)
+ }
+ return footer, nil
+}