podman
29 строк · 505.0 Байт
1// +build !windows
2
3package shellwords
4
5import (
6"fmt"
7"os"
8"os/exec"
9"strings"
10)
11
12func shellRun(line, dir string) (string, error) {
13var shell string
14if shell = os.Getenv("SHELL"); shell == "" {
15shell = "/bin/sh"
16}
17cmd := exec.Command(shell, "-c", line)
18if dir != "" {
19cmd.Dir = dir
20}
21b, err := cmd.Output()
22if err != nil {
23if eerr, ok := err.(*exec.ExitError); ok {
24b = eerr.Stderr
25}
26return "", fmt.Errorf("%s: %w", string(b), err)
27}
28return strings.TrimSpace(string(b)), nil
29}
30