util_exec.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package util
  2. import (
  3. "cicv-data-closedloop/compile-service/package/config/c_log"
  4. "os/exec"
  5. )
  6. func Execute(name string, arg ...string) (*exec.Cmd, string, error) {
  7. cmd := exec.Command(name, arg...)
  8. combinedOutput, err := cmd.CombinedOutput()
  9. if err != nil {
  10. c_log.GlobalLogger.Info("命令", name, " ", arg, "执行出错:", err)
  11. return nil, string(combinedOutput), err
  12. }
  13. return cmd, string(combinedOutput), nil
  14. }
  15. func ExecuteWithDir(dir string, name string, arg ...string) (*exec.Cmd, string, error) {
  16. cmd := exec.Command(name, arg...)
  17. cmd.Dir = dir
  18. combinedOutput, err := cmd.CombinedOutput()
  19. if err != nil {
  20. return nil, "", err
  21. }
  22. return cmd, string(combinedOutput), nil
  23. }
  24. func ExecuteWithEnvAndDir(envs []string, dir string, name string, arg ...string) (*exec.Cmd, string, error) {
  25. cmd := exec.Command(name, arg...)
  26. cmd.Dir = dir
  27. for _, env := range envs {
  28. cmd.Env = append(cmd.Env, env)
  29. }
  30. combinedOutput, err := cmd.CombinedOutput()
  31. if err != nil {
  32. return nil, string(combinedOutput), err
  33. }
  34. return cmd, string(combinedOutput), nil
  35. }
  36. //func ExecuteWithEnvAndDir(envs []string, dir string, name string, arg ...string) (*exec.Cmd, error) {
  37. // cmd := exec.Command(name, arg...)
  38. // cmd.Dir = dir
  39. // for _, env := range envs {
  40. // cmd.Env = append(cmd.Env, env)
  41. // }
  42. // if err := cmd.Run(); err != nil {
  43. // return nil, err
  44. // }
  45. // return cmd, nil
  46. //}