diff options
Diffstat (limited to 'globalBuildOptions.go')
| -rw-r--r-- | globalBuildOptions.go | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/globalBuildOptions.go b/globalBuildOptions.go new file mode 100644 index 0000000..b8bf594 --- /dev/null +++ b/globalBuildOptions.go @@ -0,0 +1,121 @@ +// This is a simple example +package main + +import ( + "os" + "strings" + + "go.wit.com/log" + + "go.wit.com/gui/gui" + "go.wit.com/gui/gadgets" +) + +func doesExist(path string) bool { + if _, err := os.Stat(path); err != nil { + if os.IsNotExist(err) { + return false + } + } + return true +} + +func globalBuildOptions(box *gui.Node) { + var setCurrentBranch *gui.Node + group1 := box.NewGroup("Global Build Options") + groupvbox := group1.NewBox("bw vbox", false) + // grouphbox := groupvbox.NewBox("bw hbox", true) + + grid := groupvbox.NewGrid("buildOptions",2, 1) + + me.mainBranch = gadgets.NewBasicCombobox(grid, "default main branch") + me.mainBranch.Add("guimain") + me.mainBranch.Add("gitea server default") + me.mainBranch.Disable() + + me.develBranch = gadgets.NewBasicCombobox(grid, "default devel branch") + me.develBranch.Add("devel") + + me.userBranch = gadgets.NewBasicCombobox(grid, "default user branch") + me.userBranch.Add("jcarr") + + // select the branch you want to test, build and develop against + // this lets you select your user branch, but, when you are happy + // you can merge everything into the devel branch and make sure it actually + // works. Then, when that is good, merge and version everything in master + guiBranch := gadgets.NewBasicCombobox(grid, "Set Current Working Branch") + guiBranch.Add("guimaster") + guiBranch.Add("guidevel") + guiBranch.Add("jcarr") + guiBranch.Custom = func () { + me.toMoveToBranch = guiBranch.Get() + setCurrentBranch.Set("set all branches to " + me.toMoveToBranch) + me.mainBranch.Disable() + } + + setCurrentBranch = groupvbox.NewButton("set all branches to", func () { + for _, repo := range allrepos { + var changeBranch [][]string + // realname, realversion := repo.status.CheckoutBranch(me.toMoveToBranch) + // log.Warn("GOT", realname, realversion) + path := repo.status.GetPath() + changeBranch = append(changeBranch, []string{"cd", "go/src/" + path}) + changeBranch = append(changeBranch, []string{"git", "checkout", me.toMoveToBranch}) + me.script = changeBranch + setGitCommands() + goMake("--doit") + return + } + }) + var everything *gui.Node + everything = groupvbox.NewButton("go get everything on go.wit.com", func () { + var perfect bool = true + var newCmds [][]string + // usr, _ := user.Current() + newCmds = append(newCmds, []string{"cd", "go/src/gui/app/myrepos"}) + repos := myrepolist() + for _, line := range repos { + log.Warn("repo =", line) + path, _, _, _ := splitLine(line) + path = strings.TrimSpace(path) + if path == "#" { + // skip comment lines + continue + } + if doesExist("/home/jcarr/go/src/" + path) { + continue + } + newCmds = append(newCmds, []string{"go", "get", "-v", path}) + perfect = false + } + + if perfect { + var notes [][]string + notes = append(notes, []string{"you have already downloaded"}) + notes = append(notes, []string{"everything on go.wit.com"}) + me.script = notes + setGitCommands() + doit.Disable() + everything.Disable() + return + } + + me.script = newCmds + doit.Enable() + setGitCommands() + }) + groupvbox.NewButton("build all apps", func () { + }) + + groupvbox.NewButton("status.Update() all", func () { + for _, repo := range allrepos { + repo.status.Update() + } + }) + + groupvbox.NewButton("rescan all", func () { + for _, repo := range allrepos { + repo.newScan() + } + }) +} |
