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  }