util_go15.go 479 B

1234567891011121314151617181920212223242526272829
  1. // +build !go1.6
  2. package shellwords
  3. import (
  4. "os"
  5. "os/exec"
  6. "runtime"
  7. "strings"
  8. )
  9. func shellRun(line, dir string) (string, error) {
  10. var b []byte
  11. var err error
  12. var cmd *exec.Cmd
  13. if runtime.GOOS == "windows" {
  14. cmd = exec.Command(os.Getenv("COMSPEC"), "/c", line)
  15. } else {
  16. cmd = exec.Command(os.Getenv("SHELL"), "-c", line)
  17. }
  18. if dir != "" {
  19. cmd.Dir = dir
  20. }
  21. b, err = cmd.Output()
  22. if err != nil {
  23. return "", err
  24. }
  25. return strings.TrimSpace(string(b)), nil
  26. }