diff options
Diffstat (limited to 'doDownloadForge.go')
| -rw-r--r-- | doDownloadForge.go | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/doDownloadForge.go b/doDownloadForge.go index 5d86218..f690370 100644 --- a/doDownloadForge.go +++ b/doDownloadForge.go @@ -6,13 +6,16 @@ package main // An app to submit patches for the 30 GO GUI repos import ( + "errors" + "os" + "go.wit.com/lib/fhelp" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) // download forge. A good way to check things work -func doDownloadForge() { +func doDownloadForge() (string, error) { log.Info("download here") if path, err := fhelp.CheckCmd("go-clone"); err != nil { log.Info("go-clone missing", path, err) @@ -29,7 +32,7 @@ func doDownloadForge() { } if path, err := fhelp.CheckCmd("go-clone"); err != nil { log.Info("can't prep build. you probably need ~/go/bin in your PATH", path, err) - return + return "", errors.New("prep build failed") } var basecmd []string var cmd []string @@ -44,21 +47,21 @@ func doDownloadForge() { r := shell.Run([]string{"forge", "show"}) if r.Error != nil { - me.sh.BadExit("download go-mod-clean failed", r.Error) + return "download go-mod-clean failed", r.Error } cmd = append(basecmd, "go.wit.com/apps/go-mod-clean") log.Info("Running:", cmd) r = shell.RunRealtime(cmd) if r.Error != nil { - me.sh.BadExit("download go-mod-clean failed", r.Error) + return "download go-mod-clean failed", r.Error } cmd = append(basecmd, "go.wit.com/apps/autogenpb") log.Info("Running:", cmd) r = shell.RunRealtime(cmd) if r.Error != nil { - me.sh.BadExit("download autogenpb failed", r.Error) + return "download autogenpb failed", r.Error } cmd = append(basecmd, "go.wit.com/apps/forge") @@ -82,11 +85,17 @@ func doDownloadForge() { me.sh.BadExit("download GTK GO plugin toolkit failed", r.Error) } - // should, after go-clone, be able to go build - /* - repo := me.forge.FindByGoPath("go.wit.com/lib/proto/forgepb") - if repo != nil { - repo.RunVerbose([]string{"autogenpb"}) - } - */ + if (me.forge == nil) || (me.forge.Repos == nil) { + log.Info("RUN forge --rebuild again. it might work after a few tries") + return "forge is new. this may not work yet", errors.New("forge init not working yet") + } + repo := me.forge.Repos.FindByNamespace("go.wit.com/apps/forge") + if repo != nil { + r := shell.Run([]string{"forge", "show"}) + return "failed the first go around. run it again. this feature is new", r.Error + } + // yay. it might work + os.Chdir(repo.FullPath) + r = shell.Run([]string{"make", "generate"}) + return "make generate might have worked", r.Error } |
