package main import ( "path/filepath" "strconv" "strings" "go.wit.com/gui" "go.wit.com/log" ) func globalResetOptions(box *gui.Node) { group2 := box.NewGroup("Global Destructive Options") grid := group2.RawGrid() grid.NewButton("remake 'go.work' file", func() { me.repos.View.MakeGoWork() }) grid.NextRow() // this dumps everything grid.NewLabel("clean start over") me.deleteGoSrcPkgB = grid.NewButton("rm ~/go/src & ~/go/pkg & ~/.cache/go-build", func() { var state string = me.deleteGoSrcPkgB.String() /* loop := me.repos.View.ReposSortByName() for loop.Scan() { repo := loop.Repo() if repo.GetGoPath() == "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 " + strconv.Itoa(me.forge.Repos.Len()) + " 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}) quickCmd(homeDir, []string{"rm", "-rf", ".cache/go-build/"}) if me.autoDryRun.Checked() { me.deleteGoSrcPkgB.SetLabel("rm ~/go/src (uncheck dry-run)") return } } }) }