diff options
Diffstat (limited to 'windowModeMaster.go')
| -rw-r--r-- | windowModeMaster.go | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/windowModeMaster.go b/windowModeMaster.go new file mode 100644 index 0000000..e01752b --- /dev/null +++ b/windowModeMaster.go @@ -0,0 +1,86 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "go.wit.com/lib/gadgets" + "go.wit.com/log" +) + +// An app to submit patches for the 30 GO GUI repos + +func makeModeMasterWin() *gadgets.GenericWindow { + win := gadgets.NewGenericWindow("Release", "tools") + grid := win.Group.RawGrid() + + checkout := grid.NewButton("git checkout master", func() { + win.Disable() + defer win.Enable() + }) + gitpull := grid.NewButton("git pull", func() { + win.Disable() + defer win.Enable() + }) + grid.NextRow() + + cleanUser := grid.NewButton("Clean user branches", func() { + win.Disable() + defer win.Enable() + if err := doCleanUser(); err != nil { + log.Info("Clean user branches failed", err) + } + }) + + cleanDevel := grid.NewButton("Clean devel branches", func() { + win.Disable() + defer win.Enable() + if err := doCleanDevel(); err != nil { + log.Info("Clean devel branches failed", err) + } + }) + grid.NextRow() + + f := func() { + total, count, nope, err := IsEverythingOnMaster() + if nope == 0 { + checkout.Disable() + gitpull.Enable() + } else { + log.Printf("Master branch check. %d total repos. (%d ok) (%d not on master branch) err=%v\n", total, count, nope, err) + checkout.Enable() + } + + var localuser bool // are there still local user branches + var localdevel bool // are there still local devel branches + + all := me.forge.Repos.SortByFullPath() + for all.Scan() { + repo := all.Next() + if repo.IsLocalBranch(repo.GetUserBranchName()) { + localuser = true + } + if repo.IsLocalBranch(repo.GetDevelBranchName()) { + localdevel = true + } + } + if localuser { + cleanUser.Enable() + } else { + cleanUser.Disable() + } + if localdevel { + cleanDevel.Enable() + } else { + cleanDevel.Disable() + } + } + + grid.NewButton("check repo state", func() { + win.Disable() + defer win.Enable() + + f() + }) + return win +} |
