diff options
Diffstat (limited to 'windowHackMode.go')
| -rw-r--r-- | windowHackMode.go | 123 |
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 +} |
