summaryrefslogtreecommitdiff
path: root/doDownloadForge.go
diff options
context:
space:
mode:
Diffstat (limited to 'doDownloadForge.go')
-rw-r--r--doDownloadForge.go33
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
}