package main import ( "os" "go.wit.com/gui" "go.wit.com/lib/debugger" "go.wit.com/lib/gui/logsettings" "go.wit.com/log" ) func globalDisplayOptions(box *gui.Node) { vbox := box.NewVerticalBox("DISPLAYVBOX") group1 := vbox.NewGroup("Global Display Options") hidegrid := group1.NewGrid("hidecfg", 0, 0) hidegrid.NewButton("Show Repository Window", func() { if me.repos.Hidden() { me.repos.Show() } else { me.repos.Hide() } log.Info("showing reposwin") }) hidegrid.NextRow() me.autoHideReadOnly = hidegrid.NewCheckbox("Hide read-only repos").SetChecked(true) // me.autoHideReadOnly.Custom = func() { // log.Info("registered hide function to globalDisplayShow()") // me.repos.View.RegisterHideFunction(globalDisplayShow) // } hidegrid.NextRow() me.autoHideReleased = hidegrid.NewCheckbox("Hide Released repos").SetChecked(true) hidegrid.NextRow() me.ignoreWhitelist = hidegrid.NewCheckbox("ignore whitelist (are you sure?)").SetChecked(false) hidegrid.NextRow() me.scanEveryMinute = hidegrid.NewCheckbox("Scan every minute").SetChecked(false) me.scanEveryMinute.Custom = func() { if me.scanEveryMinute.Checked() { os.Setenv("REPO_AUTO_SCAN", "true") log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) } else { os.Unsetenv("REPO_AUTO_SCAN") log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) } } hidegrid.NewButton("scan now", func() { log.Info("re-scanning repos now") i, s := me.repos.View.ScanRepositories() log.Info("re-scanning repos done", i, s) // me.duration.SetText(s) }) me.duration = me.repos.View.MirrorScanDuration() hidegrid.Append(me.duration) hidegrid.NextRow() group1 = vbox.NewGroup("prep for release") grid := group1.RawGrid() var longB *gui.Node longB = grid.NewButton("generate go.sum files", func() { me.Disable() var worked bool = true for _, repo := range me.repos.View.AllRepos() { if whitelist(repo.GoPath()) { continue } ok, err := me.repos.View.CheckValidGoSum(repo) if !ok { log.Info("redo go.sum failed on", repo.GoPath(), err) worked = false } } log.Info("redo go.sum finished with", worked) me.Enable() longB.SetLabel("go.sum files created") if worked { longB.Disable() } }) me.setBranchesToMasterB = grid.NewButton("set all branches to master", func() { me.Disable() defer me.Enable() if setAllBranchesToMaster() { // if it succeeds, disable this button me.setBranchesToMasterB.Disable() } }) grid.NextRow() var incrementTags *gui.Node incrementTags = grid.NewButton("increment tags", func() { me.Disable() for _, repo := range me.repos.View.AllRepos() { if whitelist(repo.GoPath()) { continue } if repo.ReadOnly() { continue } lasttag := repo.LastTag() masterv := repo.Status.GetMasterVersion() targetv := repo.Status.GetTargetVersion() if lasttag == masterv { // nothing to do if curv == masterv // unless go.sum depends on changed repos if targetv != lasttag { log.Info(repo.GoPath(), "trigger a new release?", targetv, lasttag) repo.Status.SetVersion("0", "21", "0", releaseReasonS) } continue } newversion := repo.Status.GetNewVersionTag() if newversion == targetv { log.Info(repo.GoPath(), "targetv has been increased already to", targetv) continue } if masterv != targetv { log.Info(repo.GoPath(), "master and target differ", masterv, targetv) repo.Status.IncrementVersion() newversion := repo.Status.GetNewVersionTag() repo.Status.SetTargetVersion("v" + newversion) // already incremented continue } } if findNext() { log.Info("findNext() found a repo") } incrementTags.SetText("maybe ready?") me.Enable() }) grid.NextRow() group2 := vbox.NewGroup("Debugger") dbggrid := group2.NewGrid("gdb", 0, 0) dbggrid.NewButton("logging Window", func() { logsettings.LogWindow() }) dbggrid.NextRow() dbggrid.NewButton("Debugger Window", func() { debugger.DebugWindow() }) } func hidePerfect() { for _, repo := range me.repos.View.AllRepos() { if repo.State() == "PERFECT" { if repo.Hidden() { continue } repo.Hide() // return } } }