summaryrefslogtreecommitdiff
path: root/doMode.go
diff options
context:
space:
mode:
Diffstat (limited to 'doMode.go')
-rw-r--r--doMode.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/doMode.go b/doMode.go
new file mode 100644
index 0000000..2094754
--- /dev/null
+++ b/doMode.go
@@ -0,0 +1,44 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+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)
+ 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 on user braches", err)
+ }
+ setForgeMode(forgepb.ForgeMode_NORMAL)
+ log.Info("normal mode on")
+ return "normal mode on", nil
+ }
+
+ if argv.Mode.User != nil {
+ setForgeMode(forgepb.ForgeMode_USER)
+ return "user mode on", nil
+ }
+ if argv.Mode.Master != nil {
+ setForgeMode(forgepb.ForgeMode_MASTER)
+ return "master mode on", nil
+ }
+ return "nothing done", nil
+}