diff options
| -rw-r--r-- | defaultBehavior.go | 89 | ||||
| -rw-r--r-- | doCommit.go | 2 | ||||
| -rw-r--r-- | exit.go | 29 | ||||
| -rw-r--r-- | main.go | 29 |
4 files changed, 83 insertions, 66 deletions
diff --git a/defaultBehavior.go b/defaultBehavior.go index c215aa2..b42ca34 100644 --- a/defaultBehavior.go +++ b/defaultBehavior.go @@ -4,9 +4,73 @@ package main import ( + "errors" + + "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) +func defaultBehaviorMaster() error { + var reallybad bool + // always run dirty first + me.forge.CheckDirtyQuiet() + + // if no option is given to patch, list out the + // repos that have patches ready in them + found := findReposWithPatches() + if found.Len() == 0 { + log.Info("you currently have no repos with patches") + return nil + } + // warn about dirty repos not in master branches + for repo := range found.IterAll() { + if repo.CheckDirty() { + if repo.GetCurrentBranchName() != repo.GetUserBranchName() { + repo.State = "DIRTY BAD" + reallybad = true + } + // return log.Errorf("%s repo is dirty", repo.FullPath) + } + } + footer := me.forge.PrintDefaultTB(found) + log.Info("default master table", footer) + if reallybad { + return errors.New("\nYOU ARE MAKING EDITS ON NON USER BRANCHES\n") + } + return nil +} + +func doDefaultBehavior() (string, error) { + // DEFAULT BEHAVIOR CHANGES BETWEEN MODES + if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL || me.forge.Config.Mode == forgepb.ForgeMode_USER { + // PROBABLY YOU ARE WRITING CODE + // got to the end with nothing to do (?) + if showWorkRepos() { + // found some repos at least + } + // every repo is in a really clean state. no extra files anywhere + // no dirty repos, no repos that need to be published + // nothing different between user and master branch version. not common + s := "All of your git repositories appear to be in perfect shape" + return s, nil + } + + if me.forge.Config.Mode == forgepb.ForgeMode_MASTER { + // PROBABLY YOU ARE PUBLISHING / MERGING CODE + err := defaultBehaviorMaster() + if err != nil { + return "has problems", err + } + return "default master behavior is ok", nil + } + + // PROBABLY A NEW USER + found := findAll() + footer := me.forge.PrintDefaultTB(found) + return "new user: " + footer, nil +} + +/* func defaultBehavior() error { // always run dirty first me.forge.CheckDirtyQuiet() @@ -46,27 +110,4 @@ func defaultBehavior() error { } return nil } - -func defaultBehaviorMaster() error { - // always run dirty first - me.forge.CheckDirtyQuiet() - - // if no option is given to patch, list out the - // repos that have patches ready in them - found := findReposWithPatches() - if found.Len() == 0 { - log.Info("you currently have no repos with patches") - return nil - } - // warn about dirty repos not in master branches - for repo := range found.IterAll() { - if repo.CheckDirty() { - if repo.GetCurrentBranchName() != repo.GetUserBranchName() { - repo.State = "DIRTY REPO NOT IN USER BRANCH" - } - // return log.Errorf("%s repo is dirty", repo.FullPath) - } - } - me.forge.PrintDefaultTB(found) - return nil -} +*/ diff --git a/doCommit.go b/doCommit.go index 8f041b3..4a2267c 100644 --- a/doCommit.go +++ b/doCommit.go @@ -19,7 +19,7 @@ func doCommit() (string, error) { s := log.Sprintf("%s [git commit --all]", repo.GetNamespace()) setTerminalTitle(s) if err := doCommitRepo(repo); err != nil { - badExit(err) + return "failed to commit", err } newpatches = true } @@ -4,37 +4,38 @@ package main import ( - "os" - "go.wit.com/gui" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) -func okExit(thing string) { +func forgeShutdown() { gui.UnloadToolkits() if configSave { me.forge.SetConfigSave(configSave) } - if thing != "" { - log.Info("forge exit:", thing, "ok") + if err := me.forge.Close(); err != nil { + log.Info("ABNORMAL END", err) } - me.forge.Exit() +} + +func okExit(thing string) { + forgeShutdown() + me.sh.GoodExit(thing) } func badExit(err error) { - log.Info(err) - log.Info("forge failed") - os.Exit(-1) + forgeShutdown() + me.sh.BadExit("forge failed", err) } func newBadExit(msg string, err error) { - log.Info(err) - log.Info(msg) - os.Exit(-1) + forgeShutdown() + me.sh.BadExit(msg, err) } func badRepoExit(repo *gitpb.Repo, err error) { - log.Printf("%s FAILED: %v\n", repo.GetNamespace(), err) - os.Exit(-1) + forgeShutdown() + s := log.Sprintf("%s FAILED: %v", repo.GetNamespace(), err) + me.sh.BadExit(s, err) } @@ -77,6 +77,7 @@ func main() { if me.sh.Cmd == "" { s, err := doDefaultBehavior() + forgeShutdown() if err != nil { me.sh.BadExit(s, err) } @@ -154,35 +155,9 @@ func main() { debug() // sits here forever } + forgeShutdown() if err != nil { me.sh.BadExit(s, err) } me.sh.GoodExit(s) } - -func doDefaultBehavior() (string, error) { - // DEFAULT BEHAVIOR CHANGES BETWEEN MODES - if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL || me.forge.Config.Mode == forgepb.ForgeMode_USER { - // PROBABLY YOU ARE WRITING CODE - // got to the end with nothing to do (?) - if showWorkRepos() { - // found some repos at least - } - // every repo is in a really clean state. no extra files anywhere - // no dirty repos, no repos that need to be published - // nothing different between user and master branch version. not common - s := "All of your git repositories appear to be in perfect shape" - return s, nil - } - - if me.forge.Config.Mode == forgepb.ForgeMode_MASTER { - // PROBABLY YOU ARE PUBLISHING / MERGING CODE - defaultBehaviorMaster() - return "default master behavior", nil - } - - // PROBABLY A NEW USER - found := findAll() - footer := me.forge.PrintDefaultTB(found) - return footer, nil -} |
