summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-02-21 08:32:59 -0600
committerJeff Carr <[email protected]>2024-02-21 08:32:59 -0600
commitdf0ff5af1cd92287f79c7033cde4d339e0d8b628 (patch)
tree9230b0b2cc4d4e776c0a91e50f36c6685f92a764
parent42c506c0982ea85d54443a39e4995c44060287df (diff)
purge code for the autotypist
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--.gitignore3
-rw-r--r--Makefile15
-rw-r--r--debugger.go (renamed from args.go)6
-rw-r--r--docs.go60
-rw-r--r--globalDisplayOptions.go50
-rw-r--r--globalResetOptions.go116
-rw-r--r--handleCmdLine.go123
-rw-r--r--main.go32
-rw-r--r--resources/myrepolist37
-rw-r--r--structs.go63
-rw-r--r--submitPatches.go20
-rw-r--r--tagWindow.go93
12 files changed, 32 insertions, 586 deletions
diff --git a/.gitignore b/.gitignore
index 4e4afb9..6e713af 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,5 @@
go.mod
go.sum
/resources/*.so
-myrepos
-autotypist
/files/*
+submit-patchset
diff --git a/Makefile b/Makefile
index ca9ebfa..b8a3669 100644
--- a/Makefile
+++ b/Makefile
@@ -2,15 +2,15 @@
all: build
reset
- ./autotypist
+ ./submit-patchset
only-me: build
reset
- ./autotypist --only-me
+ ./submit-patchset --only-me
stderr: build
- echo "writing to /tmp/autotypist.log"
- ./autotypist >/tmp/autotypist.log 2>&1
+ echo "writing to /tmp/submit-patchset.log"
+ ./submit-patchset >/tmp/submit-patchset.log 2>&1
goimports:
goimports -w *.go
@@ -19,18 +19,15 @@ goimports:
gocui: build
reset
- ./autotypist --gui gocui >/tmp/autotypist.log 2>&1
+ ./submit-patchset --gui gocui >/tmp/submit-patchset.log 2>&1
build:
echo "build it!"
- -rm resources/*.so
- cp -a ~/go/src/go.wit.com/toolkits/*.so resources/
GO111MODULE=off go build -v -x
install:
- rm -f ~/go/src/go.wit.com/toolkits/*.so
go install -v -x
- autotypist
+ submit-patchset
check-git-clean:
@git diff-index --quiet HEAD -- || (echo "Git repository is dirty, please commit your changes first"; exit 1)
diff --git a/args.go b/debugger.go
index b2a8952..b59917c 100644
--- a/args.go
+++ b/debugger.go
@@ -14,11 +14,7 @@ import (
)
var args struct {
- DownloadAll bool `arg:"--download-all" help:"download everything from go.wit.com"`
- GitPull bool `arg:"--git-pull" help:"do git pull in every repository"`
- CheckoutUser bool `arg:"--switch-to-user-branch" help:"switch everything to your user branch"`
- CheckoutDevel bool `arg:"--switch-to-devel-branch" help:"switch everything to the devel branch"`
- OnlyMe bool `arg:"--only-me" help:"only scan repos from ~/.config/autotypist"`
+ OnlyMe bool `arg:"--only-me" help:"only scan repos from ~/.config/submitpatchsets`
}
func init() {
diff --git a/docs.go b/docs.go
deleted file mode 100644
index b5baca2..0000000
--- a/docs.go
+++ /dev/null
@@ -1,60 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
- "path/filepath"
-
- "go.wit.com/gui"
- "go.wit.com/lib/gui/repolist"
- "go.wit.com/lib/gui/shell"
- "go.wit.com/log"
-)
-
-func docsBox(vbox *gui.Node) {
- group := vbox.NewGroup("Docs")
-
- group.NewButton("make 'go.work' file", func() {
- me.autotypistWindow.Disable()
-
- goSrcDir := me.goSrcPwd.String()
- filename := filepath.Join(goSrcDir, "go.work")
-
- f, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE, 0600)
- if err != nil {
- return
- }
- defer f.Close()
- fmt.Fprintln(f, "go 1.21.4")
- fmt.Fprintln(f, "")
- fmt.Fprintln(f, "use (")
- for _, repo := range repolist.AllRepos() {
- if repo.Exists("go.mod") {
- fmt.Fprintln(f, "\t"+repo.Status.GoPath())
- } else {
- log.Info("missing go.mod for", repo.Status.Path())
- repo.Status.MakeRedomod()
- }
- }
- fmt.Fprintln(f, ")")
-
- me.autotypistWindow.Enable()
- })
-
- group.NewButton("run pkgsite", func() {
- tmp := me.userHomePwd.String()
- tmpDir := filepath.Join(tmp, "go/src")
- os.Chdir(tmpDir)
- pkgsite := filepath.Join(tmp, "go/bin", "pkgsite")
- os.Unsetenv("GO111MODULE")
- go shell.Run([]string{pkgsite})
- shell.Run([]string{"ping", "-c", "3", "git.wit.org"})
- })
-
- group.NewButton("open docs in browser (localhost:8080)", func() {
- me.autotypistWindow.Disable()
- defer me.autotypistWindow.Enable()
-
- shell.OpenBrowser("http://localhost:8080")
- })
-}
diff --git a/globalDisplayOptions.go b/globalDisplayOptions.go
index 89f0c74..2f5ce3c 100644
--- a/globalDisplayOptions.go
+++ b/globalDisplayOptions.go
@@ -2,9 +2,6 @@ package main
import (
"go.wit.com/gui"
- "go.wit.com/lib/debugger"
- "go.wit.com/lib/gui/gowit"
- "go.wit.com/lib/gui/logsettings"
"go.wit.com/lib/gui/repolist"
"go.wit.com/log"
)
@@ -80,52 +77,5 @@ func globalDisplayOptions(vbox *gui.Node) {
log.Info("re-scanning repos now")
i, s := me.repos.View.ScanRepositories()
log.Info("re-scanning repos done", i, s)
- me.duration.SetText(s)
})
-
- var tagsW *tagWindow
- group1.NewButton("git tags Window", func() {
- if tagsW == nil {
- tagsW = makeTagWindow()
- } else {
- tagsW.win.Toggle()
- }
- })
-
- var listallB *gui.Node
- listallB = group1.NewButton("go.wit.com", func() {
- listallB.Disable()
- if me.lw == nil {
- me.lw = gowit.ListWindow(me.repos.View)
- }
- if me.lw.Hidden() {
- me.lw.Show()
- } else {
- me.lw.Hide()
- }
- listallB.Enable()
- })
-}
-
-func debuggerBox(vbox *gui.Node) {
- group2 := vbox.NewGroup("Debugger")
- group2.NewButton("logging Window", func() {
- logsettings.LogWindow()
- })
-
- group2.NewButton("Debugger Window", func() {
- debugger.DebugWindow()
- })
-}
-
-func hidePerfect() {
- for _, repo := range repolist.AllRepos() {
- if repo.IsPerfect() {
- if repo.Hidden() {
- continue
- }
- repo.Hide()
- // return
- }
- }
}
diff --git a/globalResetOptions.go b/globalResetOptions.go
deleted file mode 100644
index 18a9565..0000000
--- a/globalResetOptions.go
+++ /dev/null
@@ -1,116 +0,0 @@
-package main
-
-import (
- "os"
- "path/filepath"
- "strings"
-
- "go.wit.com/gui"
- "go.wit.com/lib/gui/repolist"
- "go.wit.com/log"
-)
-
-func globalResetOptions(box *gui.Node) {
- group2 := box.NewGroup("Global Destructive Options")
-
- me.autoRebuildButton = group2.NewButton("rebuild autotypist", func() {
- me.autoRebuildButton.Disable()
- me.autoRebuildButton.SetLabel("running....")
- attemptAutoRebuild()
- me.autoRebuildButton.Enable()
- me.autoRebuildButton.SetLabel("rebuild autotypist")
- })
-
- me.stopOnErrors = group2.NewCheckbox("Stop on errors")
- me.stopOnErrors.SetChecked(true)
-
- me.autoDryRun = group2.NewCheckbox("autotypist --dry-run")
- me.autoDryRun.SetChecked(true)
-
- buildOptions := group2.NewGrid("buildOptions", 2, 1)
-
- buildOptions.NewLabel("start over")
- me.deleteGoSrcPkgB = buildOptions.NewButton("rm ~/go/src & ~/go/pkg", func() {
- var state string = me.deleteGoSrcPkgB.String()
- for _, repo := range repolist.AllRepos() {
- if repo.GoPath() == "go.wit.com/apps/autotypist" {
- continue
- }
- if repo.Status.CheckDirty() {
- log.Warn("repo is dirty. commit your changes first", repo.Status.Path())
- me.deleteGoSrcPkgB.SetLabel("rm ~/go/src (can't. dirty repos)")
- return
- }
- }
-
- log.Warn("no repos have uncommited changes")
- log.Warn("TODO: check things are pushed and check every dir in go/src/")
- if strings.HasPrefix(state, "rm ~/go/src") {
- me.deleteGoSrcPkgB.SetLabel("ARE YOU SURE?")
- return
- }
- if me.deleteGoSrcPkgB.String() == "ARE YOU SURE?" {
- me.deleteGoSrcPkgB.SetLabel("WE ARE NOT KIDDING")
- return
- }
- var totals string = "All " + me.summary.totalGoOL.String() + " Repos?"
- log.Info("totals =", totals)
- if me.deleteGoSrcPkgB.String() == "WE ARE NOT KIDDING" {
- me.deleteGoSrcPkgB.SetLabel(totals)
- return
- }
- if me.deleteGoSrcPkgB.String() == totals {
- homeDir := me.userHomePwd.String()
- fullpath := filepath.Join(homeDir, "go")
- gosrc := filepath.Join(fullpath, "src")
- gopkg := filepath.Join(fullpath, "pkg")
- quickCmd(fullpath, []string{"rm", "-rf", gosrc})
- quickCmd(fullpath, []string{"chmod", "700", "-R", gopkg})
- quickCmd(fullpath, []string{"rm", "-rf", gopkg})
- if me.autoDryRun.Checked() {
- me.deleteGoSrcPkgB.SetLabel("rm ~/go/src (uncheck dry-run)")
- return
- }
- }
- })
-}
-
-func attemptAutoRebuild() {
- os.Setenv("GO111MODULE", "off")
-
- version := "latest"
-
- homeDir := me.userHomePwd.String()
- quickCmd(homeDir, []string{"mkdir", "-p", "go/src/go.wit.com/apps/"})
- fullpath := filepath.Join(homeDir, "go/src/go.wit.com/apps/")
-
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/apps/autotypist"})
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/toolkits/debian"})
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/toolkits/tree"})
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/toolkits/nocui"})
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/toolkits/gocui"})
- quickCmd(fullpath, []string{"go", "get", "-v", "go.wit.com/toolkits/andlabs"})
-
- os.Unsetenv("GO111MODULE")
- quickCmd(homeDir, []string{"mkdir", "-p", "go/lib"})
- fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/nocui/")
- libfile := filepath.Join(homeDir, "go/lib/nocui.so")
- quickCmd(fullpath, []string{"go", "mod", "init"})
- quickCmd(fullpath, []string{"go", "mod", "tidy"})
- quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", libfile})
-
- fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/gocui/")
- libfile = filepath.Join(homeDir, "go/lib/gocui.so")
- quickCmd(fullpath, []string{"go", "mod", "init"})
- quickCmd(fullpath, []string{"go", "mod", "tidy"})
- quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", libfile})
-
- fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/andlabs/")
- libfile = filepath.Join(homeDir, "go/lib/andlabs.so")
- quickCmd(fullpath, []string{"go", "mod", "init"})
- quickCmd(fullpath, []string{"go", "mod", "tidy"})
- quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", libfile})
-
- fullpath = filepath.Join(homeDir, "go/src/go.wit.com")
- quickCmd(fullpath, []string{"go", "install", "-v", "go.wit.com/apps/autotypist@" + version})
-}
diff --git a/handleCmdLine.go b/handleCmdLine.go
deleted file mode 100644
index fdafcbe..0000000
--- a/handleCmdLine.go
+++ /dev/null
@@ -1,123 +0,0 @@
-package main
-
-import (
- "os"
-
- "go.wit.com/lib/gui/repolist"
- "go.wit.com/log"
-)
-
-/*
-This will process the command line arguements like --git-pull
-
-It should do them in a smart order. If any of them are called,
-don't show the GUI at all and just exit.
-*/
-
-func argGitPull() bool {
- log.Info("running git pull everywhere")
- me.autotypistWindow.Hide()
- cmd := []string{"git", "pull"}
- var failed int = 0
- for _, repo := range repolist.AllRepos() {
- log.Info("Running:", repo.Status.Path(), cmd)
- err, output := repo.RunCmd(cmd)
- if err == nil {
- log.Info(output)
- } else {
- failed += 1
- log.Info("Something went wrong. Got err", err)
- log.Info("output =", output)
- return false
- }
- }
- log.Info("Ran git pull in all repos. failure count =", failed)
- return true
-}
-
-func argCheckoutDevel() bool {
- log.Info("running git checkout devel everwhere")
- me.autotypistWindow.Hide()
- var failed int = 0
- for _, repo := range repolist.AllRepos() {
- if repo.CheckDirty() {
- log.Info("skipping dirty repo", repo.Name())
- continue
- }
- branch := repo.Status.GetDevelBranchName()
- cmd := []string{"git", "checkout", branch}
- log.Info("Running:", cmd, "in", repo.Name())
- err, output := repo.RunCmd(cmd)
- if err == nil {
- log.Info("git checkout worked", output)
- } else {
- failed += 1
- log.Info("git checkout failed")
- log.Info("Something went wrong. Got err", err)
- log.Info("output =", output)
- // return false
- }
- }
- log.Info("Ran git checkout in all repos. failure count =", failed)
- return true
-}
-
-func argCheckoutUser() bool {
- log.Info("running git checkout devel everwhere")
- me.autotypistWindow.Hide()
- var failed int = 0
- for _, repo := range repolist.AllRepos() {
- if repo.Status.CheckDirty() {
- log.Info("skipping dirty repo", repo.Name())
- continue
- }
- branch := repo.Status.GetUserBranchName()
- cmd := []string{"git", "checkout", branch}
- log.Info("Running:", cmd, "in", repo.Name())
- err, output := repo.RunCmd(cmd)
- if err == nil {
- log.Info("git checkout worked", output)
- } else {
- failed += 1
- log.Info("git checkout failed")
- log.Info("Something went wrong. Got err", err)
- log.Info("output =", output)
- // return false
- }
- }
- log.Info("Ran git checkout in all repos. failure count =", failed)
- return true
-}
-
-func handleCmdLine() {
- var doExit bool = false
-
- if args.CheckoutDevel {
- argCheckoutDevel()
- doExit = true
- } else {
- log.Info("not switching to devel branches")
- }
-
- if args.CheckoutUser {
- argCheckoutUser()
- doExit = true
- } else {
- log.Info("not switching to user branches")
- }
-
- if args.GitPull {
- if argGitPull() {
- log.Info("git pull everywhere worked")
- } else {
- log.Info("git failed somewhere")
- }
- doExit = true
- } else {
- log.Info("not running git pull everywhere")
- }
-
- if doExit {
- os.Exit(0)
- }
-}
diff --git a/main.go b/main.go
index 2750ec7..13a003e 100644
--- a/main.go
+++ b/main.go
@@ -1,33 +1,27 @@
package main
-import (
- "embed"
+// An app to submit patches for the 30 GO GUI repos
- "go.wit.com/lib/debugger"
+import (
+ "go.wit.com/lib/gadgets"
"go.wit.com/log"
"go.wit.com/gui"
)
-//go:embed resources/*
-var resToolkit embed.FS
-
func main() {
- me = new(autoType)
+ me = new(mainType)
- me.myGui = gui.New()
- me.myGui.InitEmbed(resToolkit)
- me.myGui.Default()
+ me.myGui = gui.New().Default()
- me.autotypistWindow = me.myGui.NewWindow("autotypist: it types faster than you can.")
- me.mainbox = me.autotypistWindow.NewBox("bw hbox", true)
+ me.mainWindow = gadgets.RawBasicWindow("submit & test patchsets")
+ me.mainWindow.Make()
+ me.mainWindow.Show()
+ me.mainbox = me.mainWindow.Box()
vbox1 := me.mainbox.NewVerticalBox("BOX1")
globalDisplayOptions(vbox1)
- docsBox(vbox1)
- if debugger.ArgDebug() {
- debuggerBox(vbox1)
- }
+
// disable the interface while everything is scanned
me.Disable()
@@ -35,8 +29,6 @@ func main() {
globalBuildOptions(vbox2)
me.summary = submitPatchesBox(vbox2)
- globalResetOptions(me.mainbox)
-
me.repos = makeRepoView()
// parse config file and scan for .git repos
@@ -46,10 +38,6 @@ func main() {
// TODO: should not really be necessary directly after init()
me.repos.View.ScanRepositories()
- // process everything on the command line
- // may exit here
- handleCmdLine()
-
// processing is done. update the repo summary box
me.summary.Update()
diff --git a/resources/myrepolist b/resources/myrepolist
deleted file mode 100644
index 4b19fd0..0000000
--- a/resources/myrepolist
+++ /dev/null
@@ -1,37 +0,0 @@
-go.wit.com/log
-
-go.wit.com/gui guimaster
-go.wit.com/widget guimaster
-go.wit.com/lib/debugger guimaster
-
-go.wit.com/toolkits/tree guimaster
-go.wit.com/toolkits/debian guimaster
-go.wit.com/toolkits/nocui guimaster
-go.wit.com/toolkits/gocui guimaster
-go.wit.com/toolkits/andlabs guimaster
-
-go.wit.com/lib/gadgets guimaster
-go.wit.com/lib/gui/repostatus guimaster
-go.wit.com/lib/gui/logsettings guimaster
-go.wit.com/lib/gui/hostname guimaster
-go.wit.com/lib/gui/linuxstatus guimaster
-go.wit.com/lib/gui/digitalocean guimaster
-go.wit.com/lib/gui/cloudflare guimaster
-go.wit.com/lib/gui/shell guimaster
-
-go.wit.com/apps/helloworld guimaster
-go.wit.com/apps/basicwindow guimaster
-go.wit.com/apps/gadgetwindow guimaster
-go.wit.com/apps/control-panel-dns main
-go.wit.com/apps/control-panel-digitalocean
-go.wit.com/apps/control-panel-cloudflare master
-go.wit.com/apps/control-panel-vpn
-go.wit.com/apps/autotypist master
-go.wit.com/apps/go.wit.com
-go.wit.com/apps/guireleaser
-
-go.wit.com/dev/davecgh/spew/ guimaster
-go.wit.com/dev/alexflint/arg/ guimaster
-go.wit.com/dev/alexflint/scalar/ guimaster
-go.wit.com/dev/andlabs/ui guimaster devel jcarr
-go.wit.com/dev/andlabs/libui guimaster devel jcarr
diff --git a/structs.go b/structs.go
index 1e8a343..56391fb 100644
--- a/structs.go
+++ b/structs.go
@@ -5,22 +5,21 @@ import (
"go.wit.com/lib/gadgets"
)
-var me *autoType
+var me *mainType
-func (b *autoType) Disable() {
+func (b *mainType) Disable() {
b.mainbox.Disable()
}
-func (b *autoType) Enable() {
+func (b *mainType) Enable() {
b.mainbox.Enable()
}
// this app's variables
-type autoType struct {
- // allrepos map[string]*repo
+type mainType struct {
myGui *gui.Node
- autotypistWindow *gui.Node
+ mainWindow *gadgets.BasicWindow
// the main box. enable/disable this
mainbox *gui.Node
@@ -31,26 +30,10 @@ type autoType struct {
// our view of the repositories
repos *repoWindow
- // #### autotypist Global Display Options
+ // #### Sorting options for the repolist
autoHidePerfect *gui.Node
autoHideReadOnly *gui.Node
- // #### autotypist Global Build Options
- // what to change all the branches to
- // so, as a developer, you can move all the repos
- // to the 'devel' branch and then test a devel branch build
- // then switch back to your 'username' branch and do a build there
- toMoveToBranch string
-
- // this button will regenerate everyones go.mod & go.sum
- rerunGoMod *gui.Node
-
- // if checked, will stop trying to os.Exec() things after failure
- stopOnErrors *gui.Node
-
- // button to attempt to autorebuild
- autoRebuildButton *gui.Node
-
// checkbox for --dry-run
autoDryRun *gui.Node
@@ -64,19 +47,11 @@ type autoType struct {
// what is being used as ~/go/src
goSrcPwd *gadgets.OneLiner
- downloadEverythingButton *gui.Node
-
- // delete ~/go/src & ~/go/pkg buttons
- deleteGoSrcPkgB *gui.Node
-
// displays a summary of all the repos
// has total dirty, total read-only
// total patches, etc
summary *patchSummary
- // shows how long the scan went for
- duration *gui.Node
-
// when switch to user or devel branches, autocreate them
autoCreateBranches *gui.Node
@@ -85,29 +60,3 @@ type autoType struct {
newBranch *gui.Node
setBranchB *gui.Node
}
-
-/*
-type repo struct {
- hidden bool
- lasttagrev string
- lasttag string
- giturl string
-
- pLabel *gui.Node // path label
-
- lastTag *gui.Node // last tagged version label
- vLabel *gui.Node // version label
- dirtyLabel *gui.Node // git state (dirty or not?)
- goSumStatus *gui.Node // what is the state of the go.sum file
-
- masterVersion *gui.Node // the master branch version
- develVersion *gui.Node // the devel branch version
- userVersion *gui.Node // the user branch version
-
- endBox *gui.Node // a general box at the end of the row
- statusButton *gui.Node // opens up the status window
- diffButton *gui.Node // opens up the status window
-
- status *repostatus.RepoStatus
-}
-*/
diff --git a/submitPatches.go b/submitPatches.go
index b4ebeaf..79f0f2f 100644
--- a/submitPatches.go
+++ b/submitPatches.go
@@ -86,21 +86,13 @@ func submitPatchesBox(box *gui.Node) *patchSummary {
s.totalUserRepos.SetText(strconv.Itoa(repocount) + " go repos")
})
- // this Update is deprecated and probably should be the function above
- /*
- s.grid.NewButton("summary.Update()", func() {
- // update the stats
- s.Update()
- })
- */
-
+ /* this used to be the way and should probably be revisited
s.grid.NewButton("Make Patches", func() {
- /* this used to be the way and should probably be revisited
for i, p := range s.allp {
log.Info(i, p.Ref, p.RS.String())
}
- */
})
+ */
s.grid.NextRow()
@@ -139,8 +131,12 @@ func submitPatchesBox(box *gui.Node) *patchSummary {
s.grid.NewLabel("")
s.grid.NewLabel("")
- s.grid.NewButton("merge from user", func() {})
- s.grid.NewButton("merge from devel", func() {})
+ s.grid.NewButton("merge from user", func() {
+ log.Info("this should make a patchset of your patches")
+ })
+ s.grid.NewButton("merge from devel", func() {
+ log.Info("this probably should not exist")
+ })
s.grid.NextRow()
group1 = box.NewGroup("Create GUI Patch Set")
diff --git a/tagWindow.go b/tagWindow.go
deleted file mode 100644
index f34be05..0000000
--- a/tagWindow.go
+++ /dev/null
@@ -1,93 +0,0 @@
-package main
-
-import (
- "go.wit.com/gui"
- "go.wit.com/log"
-
- "go.wit.com/lib/gadgets"
- "go.wit.com/lib/gui/repolist"
- "go.wit.com/lib/gui/repostatus"
-)
-
-var tagW *tagWindow
-
-type tagWindow struct {
- win *gadgets.BasicWindow
- box *gui.Node
- grid *gui.Node
- group *gui.Node
- allTags []*gitTag
-}
-
-type gitTag struct {
- rs *repostatus.RepoStatus
- hidden bool
-}
-
-func makeTagWindow() *tagWindow {
- if tagW != nil {
- tagW.win.Toggle()
- return tagW
- }
- tagW = new(tagWindow)
- tagW.win = gadgets.NewBasicWindow(me.myGui, "git tag tasks")
- tagW.win.Custom = func() {
- log.Warn("got to close")
- }
-
- tagW.win.Make()
- tagW.win.StandardClose()
- tagW.win.Draw()
-
- tagW.box = tagW.win.Box()
- topGrid := tagW.box.RawGrid()
- tagW.group = tagW.box.NewGroup("tags")
- tagW.grid = tagW.box.RawGrid()
-
- topGrid.NewButton("list all tags", func() {
- me.autotypistWindow.Disable()
- defer me.autotypistWindow.Enable()
- for _, repo := range repolist.AllRepos() {
- allTags := repo.AllTags()
- for _, t := range allTags {
- log.Info("found tag:", t.TagString(), "from", repo.Name())
- }
- }
- }).SetProgName("TAGSLISTALL")
-
- topGrid.NewButton("delete all dup tags", func() {
- me.autotypistWindow.Disable()
- defer me.autotypistWindow.Enable()
- for _, repo := range repolist.AllRepos() {
- if repo.GoPath() == "go.wit.com/lib/gadgets" {
- // only do log for now
- } else {
- // continue
- }
- tagsW := repo.TagsBox()
- tagsW.PruneSmart()
- deleteTags := tagsW.List()
- for _, t := range deleteTags {
- tagW.grid.NewLabel(t.TagString())
- tagW.grid.NewLabel(repo.Name())
- tagW.grid.NewButton("delete", func() {
- repo.DeleteTag(t)
- })
- tagW.grid.NextRow()
- if me.autoDryRun.Checked() {
- log.Info("delete tag --dry-run:", t.TagString(), "from", repo.Name())
- } else {
- log.Info("Deleting tag:", t.TagString(), "from", repo.Name())
- go repo.DeleteTag(t)
- log.Sleep(1)
- }
- }
- }
- })
-
- return tagW
-}
-
-func (t *gitTag) Hide() {
- t.hidden = true
-}