summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doClean.go4
-rw-r--r--doMode.go22
-rw-r--r--doNormal.go26
-rw-r--r--main.go12
4 files changed, 38 insertions, 26 deletions
diff --git a/doClean.go b/doClean.go
index 82602dc..9aae91a 100644
--- a/doClean.go
+++ b/doClean.go
@@ -70,13 +70,14 @@ func doClean() error {
log.Info("Run: 'forge checkout master'")
}
}
+ setForgeMode(forgepb.ForgeMode_CLEAN)
// fix this to work, then delete all the other options for "forge clean'
if err := me.forge.DoAllCheckoutMaster(); err != nil {
// badExit(err)
}
me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
- me.forge.SaveRepos()
+ me.forge.Repos.Save()
all := me.forge.Repos.SortByFullPath()
for all.Scan() {
@@ -127,6 +128,7 @@ func doClean() error {
}
log.Printf("\n") // padding for now
+ me.forge.Repos.Save()
var hmm int
hmm = found.Len()
if hmm == 0 {
diff --git a/doMode.go b/doMode.go
index 973ab38..e95cb5f 100644
--- a/doMode.go
+++ b/doMode.go
@@ -4,34 +4,14 @@
package main
import (
- "time"
-
- "go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/forgepb"
- "go.wit.com/log"
)
// FORGE USES THESE TO RECOVER FROM WHEN TOOLKITS FAIL TO LOAD
// so don't delete them
func doMode() (string, error) {
if argv.Mode.Normal != nil {
- if doNormal() {
- setForgeMode(forgepb.ForgeMode_NORMAL)
- log.Infof("all your %d repos are in a normal stete for development\n", me.forge.Repos.Len())
- okExit("")
- }
- start := time.Now()
- err := me.forge.DoAllCheckoutUser(argv.Force)
- me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
- me.forge.SaveRepos()
- dur := time.Since(start)
- log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur))
- if err != nil {
- me.sh.BadExit("not everything is 'normal' yet", err)
- }
- setForgeMode(forgepb.ForgeMode_NORMAL)
- log.Info("normal mode on")
- return "normal mode on", nil
+ return doNormal()
}
if argv.Mode.User != nil {
diff --git a/doNormal.go b/doNormal.go
index 629fdb7..eb39db0 100644
--- a/doNormal.go
+++ b/doNormal.go
@@ -15,6 +15,7 @@ import (
"go.wit.com/lib/config"
"go.wit.com/lib/fhelp"
"go.wit.com/lib/gui/shell"
+ "go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
"google.golang.org/protobuf/proto"
@@ -23,8 +24,31 @@ import (
// This does lots of "sanity" checking. It digs around and tries to resolve as much as possible
// It'll dig into the actual git patchId to match patches since the normal hashes don't match
// when you are applying with 'git am'. It tries to be thourogh (I can't spell)
+func doNormal() (string, error) {
+ if doNormalOld() {
+ if me.forge.Config.Mode != forgepb.ForgeMode_NORMAL {
+ setForgeMode(forgepb.ForgeMode_NORMAL)
+ me.forge.Config.Save()
+ }
+ s := fmt.Sprintf("all your %d repos are in a normal stete for development", me.forge.Repos.Len())
+ return s, nil
+ }
+ start := time.Now()
+ err := me.forge.DoAllCheckoutUser(argv.Force)
+ me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
+ me.forge.SaveRepos()
+ dur := time.Since(start)
+ log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur))
+ if err != nil {
+ return "not everything is 'normal' yet", err
+ }
+ setForgeMode(forgepb.ForgeMode_NORMAL)
+ me.forge.Config.Save()
+ log.Info("normal mode on")
+ return "normal mode on", nil
+}
-func doNormal() bool {
+func doNormalOld() bool {
me.forge.CheckDirtyQuiet()
var count int
diff --git a/main.go b/main.go
index dabc4ad..20adbf0 100644
--- a/main.go
+++ b/main.go
@@ -115,12 +115,18 @@ func main() {
}
}
+ 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 {
- if doNormal() {
- log.Infof("all your %d repos are in a normal stete for development\n", me.forge.Repos.Len())
- }
+ doNormal()
}
if argv.Merge != nil {