summaryrefslogtreecommitdiff
path: root/doCheckout.go
diff options
context:
space:
mode:
Diffstat (limited to 'doCheckout.go')
-rw-r--r--doCheckout.go71
1 files changed, 22 insertions, 49 deletions
diff --git a/doCheckout.go b/doCheckout.go
index 50feaf7..2200db8 100644
--- a/doCheckout.go
+++ b/doCheckout.go
@@ -10,7 +10,6 @@ import (
"time"
"go.wit.com/lib/gui/shell"
- "go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
@@ -120,6 +119,14 @@ func rillCheckoutUser(repo *gitpb.Repo) error {
// trys to figure out if there is still something to update
func doAllCheckoutUser() error {
now := time.Now()
+
+ if argv.Force {
+ log.Info("going to force create user branches")
+ if err := makeUserBranches(); err != nil {
+ return err
+ }
+ }
+
me.forge.RillFuncError(rillCheckoutUser)
count := me.forge.RillReload()
if count != 0 {
@@ -161,6 +168,10 @@ func rillCheckoutDevel(repo *gitpb.Repo) error {
// is every repo on the devel branch?
func doAllCheckoutDevel() error {
now := time.Now()
+ if argv.Force {
+ log.Info("going to force create devel branches")
+ makeDevelBranches()
+ }
log.Info("going to rill:")
me.forge.RillFuncError(rillCheckoutDevel)
count := me.forge.RillReload()
@@ -254,66 +265,28 @@ func doAllCheckoutMaster() error {
return nil
}
-// shared this with the GUI and the command line?
-func doCheckoutShared() error {
- if me.argvCheckoutUser {
- // log.Info("Starting git checkout user")
- if argv.Force {
- log.Info("going to force create user branches")
- if err := makeUserBranches(); err != nil {
- return err
- }
- }
- // this uses rill and is super fast
- doAllCheckoutUser()
- return nil
- }
-
- if me.argvCheckoutDevel {
- // log.Info("Starting git checkout devel")
- if argv.Force {
- log.Info("going to force create devel branches")
- makeDevelBranches()
- }
- // this uses rill and is super fast
- doAllCheckoutDevel()
- return nil
- }
-
- if me.argvCheckoutMaster {
- log.Info("Starting git checkout master")
- doAllCheckoutMaster()
- return nil
- }
- log.Info("Forge didn't know what branches to checkout")
- return nil
-}
-
// trys to figure out if there is still something to update
// todo: redo this logic as it is terrible
func doCheckout() error {
if argv.Checkout.User != nil {
- me.argvCheckoutUser = true
- me.forge.Config.Mode = forgepb.ForgeMode_USER
- me.forge.Config.ConfigSave()
+ if err := doAllCheckoutUser(); err != nil {
+ badExit(err)
+ }
}
if argv.Checkout.Devel != nil {
- me.argvCheckoutDevel = true
- me.forge.Config.Mode = forgepb.ForgeMode_DEVEL
- me.forge.Config.ConfigSave()
+ if err := doAllCheckoutDevel(); err != nil {
+ badExit(err)
+ }
}
if argv.Checkout.Master != nil {
- me.argvCheckoutMaster = true
- me.forge.Config.Mode = forgepb.ForgeMode_MASTER
- me.forge.Config.ConfigSave()
- }
- if err := doCheckoutShared(); err != nil {
- badExit(err)
+ if err := doAllCheckoutMaster(); err != nil {
+ badExit(err)
+ }
}
- okExit("")
+ badExit(fmt.Errorf("did not specify what branch to checkout"))
return nil
}