diff options
Diffstat (limited to 'run.go')
| -rw-r--r-- | run.go | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -6,6 +6,7 @@ import ( "os" "path/filepath" + "github.com/go-cmd/cmd" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) @@ -69,40 +70,42 @@ func runStrict(wd string, cmd []string) { } } -func runVerbose(wd string, cmd []string) error { +func runVerbose(wd string, argv []string) (cmd.Status, error) { var err error log.DaemonMode(true) defer log.DaemonMode(false) if wd != "" { if err = os.Chdir(wd); err != nil { - return fmt.Errorf("cd %s failed %v", wd, err) + var s cmd.Status + s.Stdout = []string{"notreal stdout from runVerbose()"} + return s, fmt.Errorf("cd %s failed %v", wd, err) } } - log.Info(wd, "running:", wd, cmd) + log.Info(wd, "running:", wd, argv) // result := shell.Run(cmd) - result := shell.Run(cmd) + result := shell.Run(argv) if result.Error != nil { - log.Info("cmd failed", wd, cmd, err) + log.Info("cmd failed", wd, argv, err) for _, line := range result.Stdout { log.Info(line) } for i, line := range result.Stderr { log.Info("STDERR:", i, line) } - return result.Error + return result, result.Error } if result.Exit != 0 { - log.Info("cmd failed", wd, cmd, err) + log.Info("cmd failed", wd, argv, err) for _, line := range result.Stdout { log.Info(line) } for i, line := range result.Stderr { log.Info("STDERR:", i, line) } - return fmt.Errorf("cmd failed with %d", result.Exit) + return result, fmt.Errorf("cmd failed with %d", result.Exit) } for _, line := range result.Stdout { log.Info(line) } - return nil + return result, nil } |
