package main import ( "os" "path/filepath" "go.wit.com/gui" "go.wit.com/log" ) func globalResetOptions(box *gui.Node) { group2 := box.NewGroup("Global Destructive Options") globalTestingOptions(group2) buildOptions := group2.NewGrid("buildOptions", 2, 1) buildOptions.NewLabel("start over") me.deleteGoSrcPkgB = buildOptions.NewButton("rm ~/go/src & ~/go/pkg", func() { for _, repo := range me.allrepos { // status := repo.getStatus() if repo.checkDirty() { log.Warn("repo is dirty. commit your changes first", repo.String()) 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/") me.deleteGoSrcPkgB.SetLabel("ARE YOU SURE?") if me.deleteGoSrcPkgB.String() == "ARE YOU SURE?" { 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}) } }) } // things being testing func globalTestingOptions(box *gui.Node) { var listallB *gui.Node listallB = box.NewButton("go.wit.com/list", func() { listallB.Disable() listWindow() listallB.Enable() }) me.autoRebuildButton = box.NewButton("rebuild autotypist", func() { me.autoRebuildButton.Disable() me.autoRebuildButton.SetLabel("running....") attemptAutoRebuild() me.autoRebuildButton.Enable() me.autoRebuildButton.SetLabel("rebuild autotypist") }) me.stopOnErrors = box.NewCheckbox("Stop on errors") me.stopOnErrors.SetChecked(true) me.autoDryRun = box.NewCheckbox("autotypist --dry-run") me.autoDryRun.SetChecked(true) } func attemptAutoRebuild() { os.Setenv("GO111MODULE", "off") homeDir := me.userHomePwd.String() fullpath := filepath.Join(homeDir, "go") quickCmd(fullpath, []string{"mkdir", "-p", "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"}) fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/nocui/") quickCmd(fullpath, []string{"go", "get", "-v", "-u", "."}) quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", "../nocui.so"}) fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/gocui/") quickCmd(fullpath, []string{"go", "get", "-v", "-u", "."}) quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", "../gocui.so"}) fullpath = filepath.Join(homeDir, "go/src/go.wit.com/toolkits/andlabs/") quickCmd(fullpath, []string{"go", "get", "-v", "-u", "."}) quickCmd(fullpath, []string{"go", "build", "-v", "-x", "-buildmode=plugin", "-o", "../andlabs.so"}) fullpath = filepath.Join(homeDir, "go/src/go.wit.com/apps/autotypist") quickCmd(fullpath, []string{"go", "get", "-v", "-u", "."}) quickCmd(fullpath, []string{"go", "build", "-v", "-x"}) }