From cbdcfa05894636001e5f2a60c6ea70c1f715c0fc Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 3 Dec 2024 00:35:33 -0600 Subject: fixing Init() --- gitCheckout.go | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 gitCheckout.go (limited to 'gitCheckout.go') 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 +} -- cgit v1.2.3