diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 118 |
1 files changed, 91 insertions, 27 deletions
@@ -3,6 +3,7 @@ package main import ( "os/user" + "embed" "go.wit.com/log" @@ -11,11 +12,15 @@ import ( "go.wit.com/gui/gadgets/repostatus" ) +//go:embed plugins/* +var resToolkit embed.FS + func main() { - myGui = gui.New().Default() + myGui = gui.New() + myGui.InitEmbed(resToolkit) + myGui.Default() repoworld() - gui.Watchdog() } @@ -30,19 +35,19 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri } newRepo.path = path - newRepo.pLabel = grid.NewLabel(path) - newRepo.bLabel = grid.NewLabel("") - newRepo.lastLabel = grid.NewLabel("") - newRepo.vLabel = grid.NewLabel("") + newRepo.pLabel = grid.NewLabel(path).SetProgName("path") + newRepo.lastTag = grid.NewLabel("").SetProgName("lastTag") + newRepo.vLabel = grid.NewLabel("").SetProgName("current") - newRepo.masterName = grid.NewLabel("") - newRepo.masterVersion = grid.NewLabel("") - newRepo.develName = grid.NewLabel("") - newRepo.develVersion = grid.NewLabel("") - newRepo.userName = grid.NewLabel("") - newRepo.userVersion = grid.NewLabel("") + newRepo.masterName = grid.NewLabel("").SetProgName("masterName") + newRepo.masterVersion = grid.NewLabel("").SetProgName("masterVersion") + newRepo.develName = grid.NewLabel("").SetProgName("develName") + newRepo.develVersion = grid.NewLabel("").SetProgName("develVersion") + newRepo.userName = grid.NewLabel("").SetProgName("userName") + newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion") newRepo.dirtyLabel = grid.NewLabel("") + /* newRepo.pButton = grid.NewButton("rescan", func () { newRepo.newScan() }) @@ -63,6 +68,7 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri log.Warn("status window exists. trying Hide() here") newRepo.status.Hide() }) + */ grid.NewButton("Show()", func () { if newRepo.status == nil { log.Warn("status window doesn't exist") @@ -92,13 +98,11 @@ func repoworld() { reposbox = reposwin.Box().NewBox("bw vbox", false) reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)") - reposgrid = reposgroup.NewGrid("test", 15, 1) + reposgrid = reposgroup.NewGrid("test", 11, 1) reposgrid.NewLabel("") - reposgrid.NewLabel("branch") - reposgrid.NewLabel("last tag") - reposgrid.NewLabel("Current Version") - // reposgrid.NewLabel("tags") + reposgrid.NewLabel("last tag").SetProgName("last tag") + reposgrid.NewLabel("Current Version").SetProgName("Current Version") reposgrid.NewLabel("master") reposgrid.NewLabel("version") reposgrid.NewLabel("devel") @@ -106,9 +110,6 @@ func repoworld() { reposgrid.NewLabel("user") reposgrid.NewLabel("version") reposgrid.NewLabel("Status") - reposgrid.NewLabel("rescan") - reposgrid.NewLabel("Update()") - reposgrid.NewLabel("Hide()") reposgrid.NewLabel("Show()") repos := myrepolist() @@ -123,24 +124,87 @@ func repoworld() { } box2 := reposwin.Box().NewBox("bw vbox", false) - box2.NewButton("reposgrid.Margin()", func () { - log.Warn("reposgrid.Margin() RUN NOW") - reposgrid.Margin() - log.Warn("reposgrid.Pad() RUN NOW") - reposgrid.Pad() + + buildOptions := box2.NewGrid("buildOptions",2, 1) + title := gadgets.NewOneLiner(buildOptions, "Branch and build") + title.Set("options") + guiBranch := gadgets.NewBasicCombobox(buildOptions, "Select GUI branch") + guiBranch.Add("guimaster") + guiBranch.Add("guidevel") + guiBranch.Add("jcarr") + + buildOptions.NewLabel("only PERFECT") + buildOptions.NewButton("Find", func () { + log.Warn("delete every repo marked PERFECT") + var newCmds [][]string + for _, repo := range allrepos { + status := repo.getStatus() + if status == "PERFECT" { + var line []string + line = append(line, "rm", "-rf", "go/src/" + repo.path) + newCmds = append(newCmds, line) + } + } + script = newCmds + doit.Enable() + setGitCommands() + }) + + buildOptions.NewLabel("start over") + buildOptions.NewButton("rm src & pkgs", func () { + var newCmds [][]string + var dirty bool = false + for _, repo := range allrepos { + status := repo.getStatus() + if status == "dirty" { + dirty = true + break + } + } + line := []string{"rm", "-rf", "go/src/"} + newCmds = append(newCmds, line) + newCmds = append(newCmds, []string{"rm", "-rf", "go/pkg/"}) + if dirty { + line := []string{"can't do this with dirty repos"} + newCmds = append(newCmds, line) + doit.Disable() + } else { + doit.Enable() + } + script = newCmds + setGitCommands() + }) + + buildOptions.NewLabel("repo pkg's") + buildOptions.NewButton("rm ~/go/pkg/", func () { + log.Warn("delete every repo here but skip dirty ones") + cmds.Set("rm -rf ~/go/pkg/") }) - box2.NewButton("status.Update() all", func () { + buildOptions.NewButton("status.Update() all", func () { for _, repo := range allrepos { repo.status.Update() } }) - box2.NewButton("rescan all", func () { + buildOptions.NewButton("rescan all", func () { for _, repo := range allrepos { repo.newScan() } }) + buildOptions.NewLabel("cmd") + cmds = buildOptions.NewLabel("ls") + + buildOptions.NewLabel("Doit") + doit = buildOptions.NewButton("run commands", func () { + doit.Disable() + log.Warn("should run the commands here") + if runCommands() { + log.Warn("EVERYTHING WORKED") + } else { + log.Warn("EVERYTHING DID NOT WORK") + } + }) reposwin.Draw() } |
