diff --git a/globalDisplayOptions.go b/globalDisplayOptions.go index 498055b..93c75b5 100644 --- a/globalDisplayOptions.go +++ b/globalDisplayOptions.go @@ -9,18 +9,21 @@ import ( // "go.wit.com/gui/gadgets" ) -func globalDisplayHide() { +func globalDisplaySetRepoState() { for _, repo := range me.allrepos { if me.autoHideReadOnly.Checked() { if repo.status.ReadOnly() { repo.Hide() + continue } } if me.autoHidePerfect.Checked() { if repo.dirtyLabel.String() == "PERFECT" { repo.Hide() + continue } } + repo.Show() } } @@ -46,10 +49,25 @@ func globalDisplayOptions(box *gui.Node) { group1 := vbox.NewGroup("Global Display Options") group1.NewButton("Show Repository Window", func() { - globalDisplayHide() + globalDisplaySetRepoState() reposwin.Toggle() }) group1.NewButton("Create Release Window", func() { + if release.win == nil { + log.Info("Creating the Release Window") + createReleaseWindow() + log.Info("Toggling the Release Window") + release.win.Toggle() + } + log.Info("Toggling the Release Window") + release.openrepo.Disable() + for _, repo := range me.allrepos { + repo.newScan() + } + reposwin.Toggle() + release.win.Toggle() + }) + group1.NewButton("Create Release Window (fullscan)", func() { if release.win == nil { log.Info("Creating the Release Window") createReleaseWindow() @@ -57,6 +75,7 @@ func globalDisplayOptions(box *gui.Node) { repo.status.Update() repo.newScan() } + globalDisplaySetRepoState() // open the repo window reposwin.Toggle() log.Info("Toggling the Release Window") @@ -85,16 +104,16 @@ func globalDisplayOptions(box *gui.Node) { me.autoHideReadOnly = group1.NewCheckbox("Hide read-only repos").SetChecked(true) me.autoHideReadOnly.Custom = func() { if me.autoHideReadOnly.Checked() { - globalDisplayHide() + globalDisplaySetRepoState() } else { globalDisplayShow() } } - me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(true) + me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(false) me.autoHidePerfect.Custom = func() { if me.autoHidePerfect.Checked() { - globalDisplayHide() + globalDisplaySetRepoState() } else { globalDisplayShow() } diff --git a/releaseWindow.go b/releaseWindow.go index d9e3f40..62c8953 100644 --- a/releaseWindow.go +++ b/releaseWindow.go @@ -34,6 +34,7 @@ type releaseStruct struct { checkDirtyB *gui.Node makeRedomodB *gui.Node sendVersionB *gui.Node + checkSafeB *gui.Node } func createReleaseWindow() { @@ -60,11 +61,17 @@ func createReleaseWindow() { release.grid.NewButton("next repo", func() { log.Info("find the next repo to release here") if findNextDirty() { - log.Info("found a dirty repo") - } else { - findNextRepo() + log.Info("findNextDirty() found a repo") + return + } + if findNextRepo() { + log.Info("findNextRepo() found a repo") + return + } + if findDirty2() { + log.Info("findDirty2() found a repo") + return } - findDirty2() }) release.openrepo = release.grid.NewButton("open repo", func() { @@ -128,6 +135,11 @@ func createReleaseWindow() { } buttonEnable() }) + release.checkSafeB = release.grid.NewButton("checkSafeGoSumRemake()", func() { + buttonDisable() + release.current.checkSafeGoSumRemake() + buttonEnable() + }) release.checkGoSumB = release.grid.NewButton("CheckGoSum()", func() { buttonDisable() tmp := release.current.String() @@ -141,6 +153,9 @@ func createReleaseWindow() { if release.current.getGoSumStatus() == "BAD" { release.current.setGoSumStatus("BAD VERSION") } + if release.current.getGoSumStatus() == "CLEAN" { + release.current.setGoSumStatus("BAD VERSION") + } } else { log.Info("BAD VERSION repo has go.sum requirements that are screwed up.", tmp) log.Info("BAD VERSION need to addRepo() the missing repo", missing) @@ -211,6 +226,7 @@ func buttonDisable() { release.openrepo.Disable() release.checkDirtyB.Disable() release.sendVersionB.Disable() + release.checkSafeB.Disable() } func buttonEnable() { @@ -220,6 +236,7 @@ func buttonEnable() { release.openrepo.Enable() release.checkDirtyB.Enable() release.sendVersionB.Enable() + release.checkSafeB.Enable() } func findDirty2() bool { @@ -314,7 +331,7 @@ func findNextDirty() bool { return false } -func findNextRepo() { +func findNextRepo() bool { for _, repo := range me.allrepos { goSumS := repo.getGoSumStatus() dirtyS := repo.dirtyLabel.String() @@ -335,7 +352,7 @@ func findNextRepo() { continue } if setCurrentRepo(repo, "clean round 2", "check manually") { - return + return true } } if goSumS == "DIRTY" { @@ -349,14 +366,15 @@ func findNextRepo() { } if setCurrentRepo(repo, "dirty", "commit changes") { - return + return true } } if goSumS == "BAD" { if setCurrentRepo(repo, "bad", "redo go.sum") { - return + return true } } } log.Info("tried to findNextRepo() but not sure what to do next") + return false } diff --git a/scan.go b/scan.go index f60f73a..e8c613d 100644 --- a/scan.go +++ b/scan.go @@ -86,6 +86,16 @@ func (r *repo) setGoSumStatus(s string) { r.status.SetGoSumStatus(s) } +func (r *repo) checkSafeGoSumRemake() { + if ok, bad := r.status.CheckSafeGoSumRemake(); ok { + log.Info("checkSafeGoSumRemake() is safe to redo") + r.setGoSumStatus("SAFE") + } else { + log.Info("checkSafeGoSumRemake() is not safe. problems:", bad) + r.setGoSumStatus("BAD DEP") + } +} + func scanGoSum() { for _, repo := range me.allrepos { latestversion := repo.status.GetLastTagVersion()