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...)
 | 
						|
}
 |