73 lines
2.0 KiB
Go
73 lines
2.0 KiB
Go
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
|
|
}
|
|
}
|
|
})
|
|
}
|