summaryrefslogtreecommitdiff
path: root/windowHackMode.go
diff options
context:
space:
mode:
Diffstat (limited to 'windowHackMode.go')
-rw-r--r--windowHackMode.go123
1 files changed, 123 insertions, 0 deletions
diff --git a/windowHackMode.go b/windowHackMode.go
new file mode 100644
index 0000000..ba954f5
--- /dev/null
+++ b/windowHackMode.go
@@ -0,0 +1,123 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+// An app to submit patches for the 30 GO GUI repos
+
+import (
+ "go.wit.com/lib/debugger"
+ "go.wit.com/lib/gadgets"
+ "go.wit.com/log"
+)
+
+func makeHackModeWindow() *gadgets.GenericWindow {
+ win := gadgets.NewGenericWindow("git user branch / Hack Mode Window", "This is a work in progress")
+ grid := win.Group.RawGrid()
+ grid.NewButton("git pull", func() {
+ log.Info("todo: run git pull on each repo")
+ })
+
+ me.repoDevelMergeB = grid.NewButton("merge", func() {
+ found := findMergeToDevel()
+ _, box := makeStandardReposWindow("repos to merge from user to devel", found)
+ hbox := box.Box().Horizontal()
+ hbox.NewButton("merge all", func() {
+ win.Disable()
+ defer win.Enable()
+ all := found.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if repo.CheckDirty() {
+ log.Info("repo is dirty", repo.GetGoPath())
+ continue
+ }
+ log.Info("Starting merge on", repo.GetGoPath())
+ if repo.CheckoutDevel() {
+ log.Info("checkout devel failed", repo.GetGoPath())
+ return
+ }
+ if _, err := repo.MergeToDevel(); err != nil {
+ log.Info("merge from user failed", repo.GetGoPath(), err)
+ // log.Info(strings.Join(r.Stdout, "\n"))
+ // log.Info(strings.Join(r.Stderr, "\n"))
+ return
+ }
+ if repo.CheckoutMaster() {
+ log.Info("checkout master failed", repo.GetGoPath())
+ return
+ }
+ if _, err := repo.MergeToMaster(); err != nil {
+ log.Info("merge from devel failed", repo.GetGoPath(), err)
+ return
+ }
+
+ }
+ })
+ })
+ var problemsWin *repoProblemsWindow
+ grid.NewButton("Repo Problems", func() {
+ if problemsWin != nil {
+ problemsWin.Toggle()
+ return
+ }
+ problemsWin = makeRepoProblemsWindow()
+ })
+ grid.NextRow()
+
+ group2 := win.Stack.NewGroup("Merge")
+ grid = group2.RawGrid()
+
+ grid.NewButton("merge to devel", func() {
+ win.Disable()
+ defer win.Enable()
+
+ mergeUserToDevel(true)
+ })
+
+ grid.NewButton("merge to master", func() {
+ win.Disable()
+ defer win.Enable()
+
+ mergeDevelToMaster(true)
+ })
+
+ grid.NewButton("merge all", func() {
+ win.Disable()
+ defer win.Enable()
+
+ me.argvCheckoutUser = false
+ me.argvCheckoutDevel = true
+ me.argvCheckoutMaster = false
+ if err := doCheckoutShared(); err != nil {
+ log.Info("checkout error:", err)
+ } else {
+ log.Info("checkout was ok")
+ }
+
+ mergeUserToDevel(true)
+
+ me.argvCheckoutUser = false
+ me.argvCheckoutDevel = false
+ me.argvCheckoutMaster = true
+ if err := doCheckoutShared(); err != nil {
+ log.Info("checkout error:", err)
+ } else {
+ log.Info("checkout was ok")
+ }
+
+ mergeDevelToMaster(true)
+ })
+
+ group3 := win.Stack.NewGroup("work in progress")
+ grid = group3.RawGrid()
+
+ grid.NewButton("forge ConfigSave()", func() {
+ me.forge.ConfigSave()
+ })
+
+ grid.NewButton("debugger()", func() {
+ debugger.DebugWindow()
+ })
+ return win
+}