summaryrefslogtreecommitdiff
path: root/releaseBox.go
diff options
context:
space:
mode:
Diffstat (limited to 'releaseBox.go')
-rw-r--r--releaseBox.go179
1 files changed, 132 insertions, 47 deletions
diff --git a/releaseBox.go b/releaseBox.go
index f6f281e..9db31e1 100644
--- a/releaseBox.go
+++ b/releaseBox.go
@@ -5,6 +5,7 @@ import (
"fmt"
"os"
"path/filepath"
+ "strings"
"go.wit.com/gui"
"go.wit.com/log"
@@ -49,44 +50,20 @@ type releaseStruct struct {
}
func (w *autoType) Disable() {
- // w.mainWindow.Disable()
- release.box.Disable()
- // buttonDisable()
+ me.mainBox.Disable()
}
func (w *autoType) Enable() {
- // w.mainWindow.Enable()
- release.box.Enable()
- // buttonEnable()
+ me.mainBox.Enable()
}
func createReleaseBox(box *gui.Node) {
initWhitelist()
- release.box = box
+ // release.box = box
+ release.box = box.NewVerticalBox("vbox")
release.group = release.box.NewGroup("Current Repo")
release.grid = release.group.NewGrid("buildOptions", 0, 0)
-
- // do an initial scan of all the repos
- scanGoSum()
-
- release.grid.NewButton("scan for Ready", func() {
- me.Disable()
- scanForReady()
- me.Enable()
- })
- release.grid.NewButton("findNextDirty()", func() {
- me.Disable()
- defer me.Enable()
- if findNextDirty("PRIMATIVE") {
- log.Info("findNextDirty() found a repo")
- return
- }
- if findNextDirty("") {
- log.Info("findNextDirty() found a repo")
- return
- }
- })
release.grid.NextRow()
release.releaseVersionB = release.grid.NewButton("release version", func() {
@@ -142,35 +119,26 @@ func createReleaseBox(box *gui.Node) {
panic("redo go.sum")
}
- release.grid.NewButton("Check Ready", func() {
- buttonDisable()
- defer buttonEnable()
- goSumS := release.current.GoState()
- dirtyS := release.current.State()
- lastS := release.current.LastTag()
- if CheckReady() {
- log.Info("repo is ready", release.current.Name(), goSumS, dirtyS, lastS)
- return
- } else {
- log.Info("\trepo is not ready", release.current.Name(), goSumS, dirtyS, lastS)
- }
- })
+ group := release.box.NewGroup("Run on Current Repo")
+ grid := group.NewGrid("buildOptions", 0, 0)
- release.grid.NewButton("set ignore", func() {
+ grid.NewButton("set to IGNORE", func() {
tmp := release.current.GoState()
log.Info("trying to set repo IGNORE is now =", tmp)
release.current.SetGoState("IGNORE")
release.whitelist[release.current.GoPath()] = release.current
})
- release.checkGoSumB = release.grid.NewButton("checkValidGoSum()", func() {
+ release.checkGoSumB = grid.NewButton("checkValidGoSum()", func() {
buttonDisable()
checkValidGoSum(release.current)
buttonEnable()
})
- release.grid.NextRow()
+ grid.NextRow()
- release.grid.NewButton("release all", func() {
+ group = release.box.NewGroup("Process against all repos")
+ grid = group.NewGrid("buildOptions", 0, 0)
+ grid.NewButton("release all", func() {
var worked bool = true
buttonDisable()
// rather than loop forever, at least limit this to the number of repos
@@ -196,7 +164,124 @@ func createReleaseBox(box *gui.Node) {
log.Info("release returned", worked, "and ran for", s)
buttonEnable()
})
- release.grid.NextRow()
+
+ grid.NewButton("find first repo", func() {
+ // set the target versions
+ setTargetVersion()
+
+ // have to run this twice for now. not sure why
+ // this is old
+ scanForReady()
+ scanForReady()
+
+ findNextDirty("")
+ })
+
+ grid.NewButton("Check Ready", func() {
+ buttonDisable()
+ defer buttonEnable()
+ goSumS := release.current.GoState()
+ dirtyS := release.current.State()
+ lastS := release.current.LastTag()
+ if CheckReady() {
+ log.Info("repo is ready", release.current.Name(), goSumS, dirtyS, lastS)
+ return
+ } else {
+ log.Info("\trepo is not ready", release.current.Name(), goSumS, dirtyS, lastS)
+ }
+ })
+ grid.NewButton("scan for Ready", func() {
+ me.Disable()
+ scanForReady()
+ me.Enable()
+ })
+ grid.NewButton("findNextDirty()", func() {
+ me.Disable()
+ defer me.Enable()
+ if findNextDirty("PRIMATIVE") {
+ log.Info("findNextDirty() found a repo")
+ return
+ }
+ if findNextDirty("") {
+ log.Info("findNextDirty() found a repo")
+ return
+ }
+ })
+ grid.NextRow()
+
+ group = release.box.NewGroup("experimental and dangerous stuff")
+ grid = group.NewGrid("buildOptions", 0, 0)
+ grid.NewButton("rm -f go.mod go.sum", func() {
+ me.Disable()
+ for _, repo := range me.repos.View.AllRepos() {
+ if whitelist(repo.GoPath()) {
+ continue
+ }
+ if repo.Status.ReadOnly() {
+ continue
+ }
+ repo.Status.RunCmd([]string{"rm", "-f", "go.mod", "go.sum"})
+ }
+ me.Enable()
+ })
+
+ grid.NewButton("git reset --hard", func() {
+ me.Disable()
+ for _, repo := range me.repos.View.AllRepos() {
+ if whitelist(repo.GoPath()) {
+ log.Warn("skipping whitelist", repo.Name())
+ continue
+ }
+ log.Warn("running git reset --hard", repo.Name())
+ repo.Status.RunCmd([]string{"git", "reset", "--hard"})
+ }
+ me.Enable()
+ })
+
+ grid.NewButton("git ls-files |grep go.mod", func() {
+ // var all []string
+ for _, repo := range me.repos.View.AllRepos() {
+ log.Info("repo:", repo.Name())
+ if repo.Status.ReadOnly() {
+ continue
+ }
+ if whitelist(repo.GoPath()) {
+ log.Warn("skipping whitelist", repo.GoPath())
+ continue
+ }
+ good, files := repo.Status.GitLsFiles()
+ if !good {
+ log.Warn("Something went wrong", repo.GoPath())
+ continue
+ }
+ for _, filename := range strings.Split(files, "\n") {
+ log.Info("\tfile", filename)
+ if filename == "go.mod" {
+ log.Info("Found go.mod. does version match release version?")
+ log.Info(repo.Status.GetLastTagVersion(), "vs", repo.Status.GetTargetVersion())
+ if repo.Status.GetLastTagVersion() != repo.Status.GetTargetVersion() {
+ log.Info(repo.Status.GetLastTagVersion(), "vs", repo.Status.GetTargetVersion())
+ log.Info("Found go.sum. version mismatch")
+ setCurrentRepo(repo, "VERY BROKEN", "rewind go.mod commit")
+ return
+ }
+ }
+ if filename == "go.sum" {
+ log.Info("Found go.sum. does version match release version?")
+ log.Info(repo.Status.GetLastTagVersion(), "vs", repo.Status.GetTargetVersion())
+ if repo.Status.GetLastTagVersion() != repo.Status.GetTargetVersion() {
+ log.Info(repo.Status.GetLastTagVersion(), "vs", repo.Status.GetTargetVersion())
+ log.Info("Found go.sum. version mismatch")
+ setCurrentRepo(repo, "VERY BROKEN", "rewind go.mod commit")
+ return
+ }
+ }
+ }
+ }
+ log.Info("All repos seem okay")
+ })
+ grid.NextRow()
+
}
func buttonDisable() {
@@ -251,7 +336,7 @@ func findNextDirty(onlyKind string) bool {
for _, repo := range me.repos.View.AllRepos() {
goSumS := repo.GoState()
- if repo.Status.GetTargetVersion() == repo.Status.GetCurrentVersion() {
+ if repo.Status.IsReleased() {
continue
}
if goSumS == "WHITELIST" {