Guest User

Untitled

a guest
Oct 22nd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. cmdParams := [][]string{
  2. {filepath.Join(dir, path), "npm", "install"},
  3. {filepath.Join(pdir, n.path), "gulp"},
  4. }
  5.  
  6. func Invoke(cmdParams [][]string) error {
  7. for _, cp := range cmdParams {
  8. log.Printf("Starting %s in folder %s...", cp[1:], cp[0])
  9. cmd := exec.Command(cp[1], cp[2:]...)
  10. cmd.Dir = cp[0]
  11.  
  12. stdout, err := cmd.StdoutPipe()
  13. if err != nil {
  14. log.Printf("%s cmd.StdoutPipe() error: %vn", cp[1:], err)
  15. return
  16. }
  17. // Start command:
  18. if err = cmd.Start(); err != nil {
  19. log.Printf("%s start error: %vn", cp[1:], err)
  20. return
  21. }
  22.  
  23. // Stream command output:
  24. scanner := bufio.NewScanner(stdout)
  25. scanner.Split(bufio.ScanRunes)
  26. for scanner.Scan() {
  27. fmt.Print(scanner.Text())
  28. }
  29. if scanner.Err() != nil {
  30. log.Printf("Reading %s stdout error: %vn", cp[1:], err)
  31. return
  32. }
  33.  
  34. // Get execution success or failure:
  35. if err = cmd.Wait(); err != nil {
  36. log.Printf("Error running %s: %vn", cp[1:], err)
  37. return
  38. }
  39. log.Printf("Finished %s", cp[1:])
  40. }
Add Comment
Please, Sign In to add comment