summaryrefslogtreecommitdiff
path: root/goConfig.go
diff options
context:
space:
mode:
Diffstat (limited to 'goConfig.go')
-rw-r--r--goConfig.go39
1 files changed, 24 insertions, 15 deletions
diff --git a/goConfig.go b/goConfig.go
index ffba25e..63562a2 100644
--- a/goConfig.go
+++ b/goConfig.go
@@ -106,13 +106,25 @@ func (rs *RepoStatus) GoConfig() map[string]string {
return rs.goConfig
}
+// for now, even check cmd.Exit
+func (rs *RepoStatus) strictRun(cmd []string) (bool, error) {
+ r := rs.Run(cmd)
+ if r.Error != nil {
+ log.Log(REPO, "go mod init failed err:", r.Error)
+ return false, r.Error
+ }
+ if r.Exit != 0 {
+ log.Log(REPO, "go mod init exit =", r.Exit)
+ return false, r.Error
+ }
+ return true, nil
+}
+
// poor name perhaps. It's because in most of these
// repos you can also type "make redomod" to do the same thing
// since it's a Makefile task that is also useful to be able to run
// from the command line
func (rs *RepoStatus) MakeRedomod() (bool, error) {
- var err error
- var output string
if rs.ReadOnly() {
log.Log(REPO, "will not go mod redo read only repos", rs.String())
return false, errors.New(rs.GoPath() + " is read-only ")
@@ -120,20 +132,17 @@ func (rs *RepoStatus) MakeRedomod() (bool, error) {
// unset the go development ENV var to generate release files
os.Unsetenv("GO111MODULE")
- err, output = rs.RunCmd([]string{"rm", "-f", "go.mod", "go.sum"})
- if err != nil {
- log.Log(REPO, "rm go.mod go.sum failed", err, output)
- return false, err
+ if ok, err := rs.strictRun([]string{"rm", "-f", "go.mod", "go.sum"}); !ok {
+ log.Log(REPO, "rm go.mod go.sum failed", err)
+ return ok, err
}
- err, output = rs.RunCmd([]string{"go", "mod", "init", rs.GoPath()})
- if err != nil {
- log.Log(REPO, "go mod init failed", err, output)
- return false, err
+ if ok, err := rs.strictRun([]string{"go", "mod", "init", rs.GoPath()}); !ok {
+ log.Log(REPO, "go mod init failed", err)
+ return ok, err
}
- err, output = rs.RunCmd([]string{"go", "mod", "tidy"})
- if err != nil {
- log.Log(REPO, "go mod tidy failed", err, output)
- return false, err
+ if ok, err := rs.strictRun([]string{"go", "mod", "tidy"}); !ok {
+ log.Log(REPO, "go mod tidy failed", err)
+ return ok, err
}
log.Log(REPO, "MakeRedomod() worked", rs.GoPath())
@@ -156,7 +165,7 @@ func (rs *RepoStatus) MakeRedomod() (bool, error) {
return true, nil
}
// this should never happen
- return false, nil
+ return false, errors.New("MakeRedomod() logic failed")
}
func (rs *RepoStatus) IsReleased() bool {