diff options
Diffstat (limited to 'goConfig.go')
| -rw-r--r-- | goConfig.go | 39 |
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 { |
