// 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" ) func doSubcommand() (string, error) { var s string var err error if argv.Dev != nil { // first find the repos or gopaths to operate on s, err = doDev() } if argv.Commit != nil { s, err = doCommit() } if argv.Config != nil { s, err = doConfig() } if argv.Dev != nil { s, err = doDev() if argv.Dev.Fixer != nil { s, err = doFix(argv.Dev.Fixer) } } if argv.Clean != nil { s, err = doClean() } if argv.Mode != nil { s, err = doMode() } if argv.Normal != nil { if me.forge.IsModeNormal() { s, err = doNormalAll() } else { // attempt to switch into Normal mode s, err = doNormalAttempt() } } if argv.Merge != nil { s, err = doMerge() } if argv.Add != nil { s, err = doAdd() } if argv.Pull != nil { s, err = 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 { // might be deprecated by the git devs // switch to git log then // shell.Exec([]string{"bash", "-c", "-i", "git log"}) shell.Exec([]string{"bash", "-c", "-i", "git whatchanged"}) s = "git whatchanged is now: todo" } 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() } return s, err }