summaryrefslogtreecommitdiff
path: root/windowModeMaster.go
diff options
context:
space:
mode:
Diffstat (limited to 'windowModeMaster.go')
-rw-r--r--windowModeMaster.go86
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
+}