diff options
Diffstat (limited to 'releaseBox.go')
| -rw-r--r-- | releaseBox.go | 108 |
1 files changed, 13 insertions, 95 deletions
diff --git a/releaseBox.go b/releaseBox.go index 15f68c8..d31696c 100644 --- a/releaseBox.go +++ b/releaseBox.go @@ -2,9 +2,6 @@ package main import ( - "fmt" - "time" - "go.wit.com/gui" "go.wit.com/log" @@ -100,8 +97,6 @@ func createReleaseBox(box *gui.Node) { me.autoWorkingPwd = gadgets.NewOneLiner(me.release.grid, "working directory (pwd)") me.release.grid.NextRow() - // me.userHomePwd = gadgets.NewOneLiner(me.release.grid, "user home") - // me.release.grid.NextRow() me.goSrcPwd = gadgets.NewOneLiner(me.release.grid, "go src home") me.release.grid.NextRow() @@ -111,108 +106,31 @@ func createReleaseBox(box *gui.Node) { group := me.release.box.NewGroup("Run on Current Repo") grid := group.NewGrid("buildOptions", 0, 0) - grid.NewButton("whitelist", func() { - // tmp := me.current.GoState() - if repov := me.repos.View.FindByPath(me.current.GetGoPath()); repov != nil { - log.Info("trying to whitelist repo", me.current.GetGoPath()) - } - findNext() - }) + /* + grid.NewButton("whitelist", func() { + }) + */ grid.NextRow() - group = me.release.box.NewGroup("Process against all repos") + group = me.release.box.NewGroup("Publish until done") grid = group.NewGrid("buildOptions", 0, 0) grid.NewButton("doRelease() all", func() { buttonDisable() - // rather than loop forever, at least limit this to the number of repos - // incase something, somewhere, goes wrong - ok, duration := doReleaseAll() - s := fmt.Sprint(duration) - log.Info("release returned", ok, "and ran for", s, "findCounter =", findCounter) - if !findOk { - log.Info("doRelease() immediately end something went wrong last time. findOk == false") - return - } - first := findCounter - if findCounter != 0 { - log.Info("should try thsi doRelease() loop again since findCounter =", findCounter) - ok, duration := doReleaseAll() - s := fmt.Sprint(duration) - log.Info("release returned", ok, "and ran for", s, "findCounter =", findCounter) - } - if !findOk { - log.Info("doRelease() immediately end something went wrong last time. findOk == false") - return - } - second := findCounter - log.Info("doReleaseAll() first =", first, "second =", second) - if first == 0 { - log.Info("doReleaseAll() first is 0. everything is done. second is", second) - log.Info("exit() here safely") - me.forge.ConfigSave() - printDone() - okExit("") - return - } - - if first != second { - // try a third time - log.Info("doReleaseAll() first second do not match. findNext()") - findNext() - ok, duration := doReleaseAll() - s := fmt.Sprint(duration) - log.Info("release returned", ok, "and ran for", s, "findCounter =", findCounter) - third := findCounter - log.Info("doReleaseAll() findCounter first =", first, "second =", second, "third =", third) - if !findOk { - log.Info("doRelease() immediately end something went wrong last time. findOk == false") - return - } - if (second == 0) && (third == 0) { - log.Info("doReleaseAll() SaveConfig() here and Exit(0)") - me.forge.ConfigSave() - okExit("") - } - } else { - log.Info("doReleaseAll() first second match. something has gone terribly wrong") - log.Info("killing guireleaser is a bad idea here. it will potentially loose state") - log.Info("the only way now is to parse 'go list' or ~/go/pkg/mod/<gopath>/go.sum files") - log.Info("to determine the last known version to make sure everything is redone correctly") - log.Info("this is the worst case. the better idea is to make sure it never fails") - log.Info("and restarts correctly where it left off. That might not be possible?") - log.Info("because 'go get @foo.com/bar@latest' appears to be global and so") - log.Info("some go.sum files might be correct when some are not actually published") - log.Info("TODO: is this true or not?") - } - - buttonEnable() - }) - grid.NextRow() -} - -func doReleaseAll() (bool, time.Duration) { - var worked bool = true - findCounter = 0 - duration := repolist.TimeFunction(func() { - loop := me.repos.View.ReposSortByName() - for loop.Scan() { - loop.Repo() - if !findOk { - log.Info("doRelease() immediately end something went wrong last time. findOk == false") - worked = false + count := 0 + for { + log.Info("START doRelease() LOOP count =", count, "len me.done =", len(me.done)) + if err := doRelease(); err != nil { break } - if err := doRelease(); err == nil { - log.Info("doRelease() worked. findCounter =", findCounter) - } else { - log.Info("doRelease() failed. findCounter =", findCounter, err) - worked = false + count += 1 + if count > 20 { break } } + buttonEnable() }) - return worked, duration + grid.NextRow() } func buttonDisable() { |
