diff options
| author | Jeff Carr <[email protected]> | 2025-02-07 11:22:11 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-07 11:22:11 -0600 |
| commit | 364d666eb6918ac30eae6379ae18fa91879de459 (patch) | |
| tree | df548dfc4747e3b7001deffe351c70b62d17319d /cmd.go | |
| parent | 01461832264d147163f285cee1fee653a2692f7a (diff) | |
add RunVerbose() RunVerboseOnError()v0.22.24
Diffstat (limited to 'cmd.go')
| -rw-r--r-- | cmd.go | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -2,6 +2,7 @@ package shell import ( "errors" + "fmt" "os" "time" @@ -241,3 +242,49 @@ func RemoveFirstElement(slice []string) (string, []string) { } return slice[0], slice[1:] // Return the slice without the first element } + +func RunVerbose(cmd []string) (*cmd.Status, error) { + pwd, _ := os.Getwd() + log.Info("Running:", pwd, cmd) + r, err := RunStrict(cmd) + if err != nil { + log.Info("Error", cmd, err) + } + for _, line := range r.Stdout { + log.Info(line) + } + for _, line := range r.Stderr { + log.Info(line) + } + return r, err +} + +func RunVerboseOnError(cmd []string) (*cmd.Status, error) { + r, err := RunStrict(cmd) + if err == nil { + return r, err + } + pwd, _ := os.Getwd() + log.Info("Run Error:", pwd, cmd, err) + for _, line := range r.Stdout { + log.Info(line) + } + for _, line := range r.Stderr { + log.Info(line) + } + return r, err +} + +func RunStrict(cmd []string) (*cmd.Status, error) { + pwd, _ := os.Getwd() + result := PathRunQuiet(pwd, cmd) + if result.Error != nil { + log.Warn(pwd, cmd, "wow. golang is cool. an os.Error:", result.Error) + return &result, result.Error + } + if result.Exit != 0 { + // log.Warn(cmd, "failed with", result.Exit, repo.GetGoPath()) + return &result, errors.New(fmt.Sprint(cmd, "failed with", result.Exit)) + } + return &result, nil +} |
