github.com/jacobsoderblom/buffalo@v0.11.0/buffalo/cmd/build/exec.go (about) 1 package build 2 3 import ( 4 "bytes" 5 "os" 6 "os/exec" 7 "strings" 8 9 "github.com/pkg/errors" 10 "github.com/sirupsen/logrus" 11 ) 12 13 type debugWriter int 14 15 func (debugWriter) Write(data []byte) (int, error) { 16 for _, l := range bytes.Split(data, []byte("\n")) { 17 logrus.Debug(string(l)) 18 } 19 return len(data), nil 20 } 21 22 func (b *Builder) exec(name string, args ...string) error { 23 cmd := exec.CommandContext(b.ctx, name, args...) 24 logrus.Debugf("running %s", strings.Join(cmd.Args, " ")) 25 26 //cmd.Env = envy.Environ() 27 28 cmd.Stdin = os.Stdin 29 cmd.Stderr = os.Stderr 30 cmd.Stdout = debugWriter(0) 31 err := cmd.Run() 32 if err != nil { 33 return errors.WithStack(err) 34 } 35 return nil 36 }