32 lines
502 B
Go
32 lines
502 B
Go
package runtime
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
type Cmdr struct {
|
|
}
|
|
|
|
func (k Cmdr) CombinedOutput(cmd *exec.Cmd) (string, error) {
|
|
o, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
args := append([]string{}, cmd.Args...)
|
|
args[0] = cmd.Path
|
|
|
|
cs := strings.Join(args, " ")
|
|
s := string(o)
|
|
k.Errorf("%s failed with output:\n%s", cs, s)
|
|
|
|
return s, err
|
|
}
|
|
|
|
return string(o), nil
|
|
}
|
|
|
|
func (k Cmdr) Errorf(f string, args ...interface{}) {
|
|
fmt.Fprintf(os.Stderr, f+"\n", args...)
|
|
}
|