util.go 841 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package util
  2. import (
  3. "bytes"
  4. "fmt"
  5. "os/exec"
  6. "strings"
  7. // Vendors
  8. "github.com/Sirupsen/logrus"
  9. )
  10. const CmdNotFound = "Command Not Found"
  11. func ExecuteCommand(command string, args ...string) (string, string) {
  12. logrus.Debug(command, " ", args)
  13. cmd := exec.Command(command, args...)
  14. var out bytes.Buffer
  15. var errMsg bytes.Buffer
  16. cmd.Stdout = &out
  17. cmd.Stderr = &errMsg
  18. err := cmd.Run()
  19. if err != nil {
  20. if strings.Contains(err.Error(), "not found") {
  21. return "", CmdNotFound
  22. }
  23. return "", errMsg.String()
  24. }
  25. return out.String(), errMsg.String()
  26. }
  27. func ExecuteCommandString(command string) (string, string) {
  28. out, errMsg := ExecuteCommand("bash",
  29. "-c",
  30. command)
  31. return out, errMsg
  32. }
  33. func LogError(format string, args ...interface{}) error {
  34. logrus.Errorf(format, args...)
  35. return fmt.Errorf(format, args...)
  36. }