summaryrefslogtreecommitdiff
path: root/gitCheckout.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-12-03 00:35:33 -0600
committerJeff Carr <[email protected]>2024-12-03 00:35:33 -0600
commitcbdcfa05894636001e5f2a60c6ea70c1f715c0fc (patch)
treefc5e5e731d667cf3406329029375f0fa554e8b50 /gitCheckout.go
parent189d305feeab86df88f2749afb959aa382154716 (diff)
fixing Init()
Diffstat (limited to 'gitCheckout.go')
-rw-r--r--gitCheckout.go92
1 files changed, 92 insertions, 0 deletions
diff --git a/gitCheckout.go b/gitCheckout.go
new file mode 100644
index 0000000..1ade5c6
--- /dev/null
+++ b/gitCheckout.go
@@ -0,0 +1,92 @@
+package forgepb
+
+import (
+ "errors"
+
+ "go.wit.com/lib/gui/repostatus"
+ "go.wit.com/log"
+)
+
+func (f *Forge) GitPull() bool {
+ var localonly int
+ var badmap int
+
+ log.Log(FORGEPBWARN, "running git pull everywhere")
+ var failed int = 0
+ loop := f.Repos.SortByGoPath()
+ for loop.Scan() {
+ repo := loop.Next()
+ if out, err := repo.GitPull(); err == nil {
+ log.Log(FORGEPBWARN, "Ran git pull ok", repo.GetGoPath(), out)
+ } else {
+ failed += 1
+ // repo.DumpTags()
+ if errors.Is(repostatus.ErrorGitPullOnLocal, err) {
+ localonly += 1
+ continue
+ }
+ badmap += 1
+ log.Log(FORGEPBWARN, "bad unknown git error", repo.GetGoPath(), out, err)
+ }
+ }
+ log.Log(FORGEPBWARN, "Ran git pull in all repos. failure count =", failed)
+ log.Log(FORGEPBWARN, "Ran git pull in all repos. bad errors =", badmap)
+ if localonly != 0 {
+ log.Log(FORGEPBWARN, "Ran git pull in all repos. ignored local only branches =", localonly)
+ }
+ return true
+}
+
+func (f *Forge) CheckoutDevel() bool {
+ log.Log(FORGEPBWARN, "running git checkout devel everwhere")
+ var failed int = 0
+ var count int = 0
+ loop := f.Repos.SortByGoPath()
+ for loop.Scan() {
+ repo := loop.Next()
+ count += 1
+ if repo.CheckoutDevel() {
+ // checkout ok
+ } else {
+ failed += 1
+ }
+ }
+ log.Log(FORGEPBWARN, "Ran git checkout in", count, "repos. failure count =", failed)
+ return true
+}
+
+func (f *Forge) CheckoutMaster() bool {
+ log.Log(FORGEPBWARN, "running git checkout master everwhere")
+ var failed int = 0
+ var count int = 0
+ loop := f.Repos.SortByGoPath()
+ for loop.Scan() {
+ repo := loop.Next()
+ count += 1
+ if repo.CheckoutMaster() {
+ // checkout ok
+ } else {
+ failed += 1
+ }
+ }
+ log.Log(FORGEPBWARN, "Ran git checkout in", count, "repos. failure count =", failed)
+ return true
+}
+
+func (f *Forge) CheckoutUser() bool {
+ log.Log(FORGEPBWARN, "running git checkout master everwhere")
+ var failed int = 0
+ var count int = 0
+ loop := f.Repos.SortByGoPath()
+ for loop.Scan() {
+ repo := loop.Next()
+ count += 1
+ if repo.CheckoutUser() {
+ // checkout ok
+ } else {
+ failed += 1
+ }
+ }
+ log.Log(FORGEPBWARN, "Ran git checkout in", count, "repos. failure count =", failed)
+ return true
+}