From 518c69b4b689e40684356fcefa1e8698c3f3e0cb Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 9 Oct 2025 12:26:27 -0500 Subject: standard syntax for subcommands --- main.go | 113 +++++++++++++++++++++++----------------------------------------- 1 file 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 +} -- cgit v1.2.3