Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cmdParams := [][]string{
- {filepath.Join(dir, path), "npm", "install"},
- {filepath.Join(pdir, n.path), "gulp"},
- }
- func Invoke(cmdParams [][]string) error {
- for _, cp := range cmdParams {
- log.Printf("Starting %s in folder %s...", cp[1:], cp[0])
- cmd := exec.Command(cp[1], cp[2:]...)
- cmd.Dir = cp[0]
- stdout, err := cmd.StdoutPipe()
- if err != nil {
- log.Printf("%s cmd.StdoutPipe() error: %vn", cp[1:], err)
- return
- }
- // Start command:
- if err = cmd.Start(); err != nil {
- log.Printf("%s start error: %vn", cp[1:], err)
- return
- }
- // Stream command output:
- scanner := bufio.NewScanner(stdout)
- scanner.Split(bufio.ScanRunes)
- for scanner.Scan() {
- fmt.Print(scanner.Text())
- }
- if scanner.Err() != nil {
- log.Printf("Reading %s stdout error: %vn", cp[1:], err)
- return
- }
- // Get execution success or failure:
- if err = cmd.Wait(); err != nil {
- log.Printf("Error running %s: %vn", cp[1:], err)
- return
- }
- log.Printf("Finished %s", cp[1:])
- }
Add Comment
Please, Sign In to add comment