// This is a simple example package main import ( "go.wit.com/gui" "go.wit.com/lib/debugger" "go.wit.com/lib/gui/logsettings" "go.wit.com/log" // "go.wit.com/gui/gadgets" ) func showHideRepos() { 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() } } func globalDisplayShow() { for _, repo := range me.allrepos { if me.autoHideReadOnly.Checked() { if repo.status.ReadOnly() { continue } } if me.autoHidePerfect.Checked() { if repo.dirtyLabel.String() == "PERFECT" { continue } } repo.Show() } } func globalDisplayOptions(box *gui.Node) { vbox := box.NewVerticalBox("DISPLAYVBOX") group1 := vbox.NewGroup("Global Display Options") group1.NewButton("Show Repository Window", func() { showHideRepos() reposwin.Toggle() }) me.autoHideReadOnly = group1.NewCheckbox("Hide read-only repos").SetChecked(true) me.autoHideReadOnly.Custom = func() { if me.autoHideReadOnly.Checked() { showHideRepos() } else { globalDisplayShow() } } me.autoHidePerfect = group1.NewCheckbox("Hide Perfectly clean repos").SetChecked(true) me.autoHidePerfect.Custom = func() { if me.autoHidePerfect.Checked() { showHideRepos() } else { globalDisplayShow() } } me.ignoreWhitelist = group1.NewCheckbox("ignore whitelist (are you sure?)").SetChecked(false) me.scanEveryMinute = group1.NewCheckbox("Scan every minute").SetChecked(false) group1.NewButton("set all branches to master", func() { me.Disable() for _, repo := range me.allrepos { if whitelist(repo.String()) { continue } if repo.status.CheckoutMaster() { log.Warn("set master branch worked", repo.String) repo.newScan() } else { log.Warn("set master branch failed", repo.String) repo.newScan() } } me.Enable() }) var longB *gui.Node longB = group1.NewButton("redo go.sum", func() { longB.Disable() me.Disable() for _, repo := range me.allrepos { if whitelist(repo.String()) { continue } repo.status.MakeRedomod() } me.Enable() longB.Enable() }) group1.NewButton("rm -f go.mod go.sum", func() { me.Disable() for _, repo := range me.allrepos { if whitelist(repo.String()) { continue } repo.status.RunCmd([]string{"rm", "-f", "go.mod", "go.sum"}) } me.Enable() }) group1.NewButton("git reset --hard", func() { me.Disable() for _, repo := range me.allrepos { if whitelist(repo.String()) { log.Warn("skipping whitelist", repo.String()) continue } log.Warn("running git reset --hard", repo.String()) repo.status.RunCmd([]string{"git", "reset", "--hard"}) } me.Enable() }) group2 := vbox.NewGroup("Debugger") group2.NewButton("logging Window", func() { logsettings.LogWindow() }) group2.NewButton("Debugger Window", func() { debugger.DebugWindow() }) } func hidePerfect() { for _, repo := range me.allrepos { if repo.dirtyLabel.String() == "PERFECT" { if repo.hidden { continue } repo.Hide() // return } } }