summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--revert.go42
-rw-r--r--shell.go13
2 files changed, 55 insertions, 0 deletions
diff --git a/revert.go b/revert.go
new file mode 100644
index 0000000..d217c77
--- /dev/null
+++ b/revert.go
@@ -0,0 +1,42 @@
+package gitpb
+
+import "go.wit.com/log"
+
+// reverts master to devel
+// used in the unwind process of making GUI releases
+func (repo *Repo) RevertMasterToDevel() bool {
+ if repo.CheckDirty() {
+ log.Info("sorry, it's still dirty")
+ return false
+ }
+
+ curName := repo.GetCurrentBranchName()
+ dName := repo.GetDevelBranchName()
+ mName := repo.GetMasterBranchName()
+ if curName != mName {
+ log.Info("repo is not working from main branch", curName, "!=", mName)
+ return false
+ }
+
+ log.Info("reset master to devel", curName, repo.GetGoPath())
+
+ var all [][]string
+ all = append(all, []string{"git", "checkout", dName}) // switch to the devel branch
+ all = append(all, []string{"git", "branch", "-D", mName})
+ all = append(all, []string{"git", "branch", mName}) // make a master branch based on devel
+ all = append(all, []string{"git", "checkout", mName})
+ all = append(all, []string{"git", "push", "--set-upstream", "--force", "origin", mName})
+
+ // don't do anything with tags here
+ // all = append(all, []string{"git", "tag", "--delete", release.version.String()})
+ // all = append(all, []string{"git", "push", "--delete", "origin", release.version.String()})
+
+ if repo.RunAll(all) {
+ log.Info("EVERYTHING OK. RERELEASED", repo.GetGoPath())
+ repo.Reload()
+ return true
+ }
+
+ log.Info("SOMETHING FAILED")
+ return false
+}
diff --git a/shell.go b/shell.go
index b7c0018..c9ea1ed 100644
--- a/shell.go
+++ b/shell.go
@@ -108,3 +108,16 @@ func (repo *Repo) IsDirectory() bool {
}
return info.IsDir()
}
+
+func (repo *Repo) RunAll(all [][]string) bool {
+ for _, cmd := range all {
+ log.Log(GITPBWARN, "doAll() RUNNING: cmd =", cmd)
+ r := repo.Run(cmd)
+ if r.Error != nil {
+ log.Log(GITPBWARN, "doAll() err =", r.Error)
+ log.Log(GITPBWARN, "doAll() out =", r.Stdout)
+ return false
+ }
+ }
+ return true
+}