@@ -52,11 +52,11 @@ func Add(desc string, cmd *exec.Cmd) int64 {
52
52
return pid
53
53
}
54
54
55
- // ExecDir runs a command in given path and waits for its completion
55
+ // ExecDirEnv runs a command in given path and environment variables, and waits for its completion
56
56
// up to the given timeout (or DefaultTimeout if -1 is given).
57
57
// Returns its complete stdout and stderr
58
58
// outputs and an error, if any (including timeout)
59
- func ExecDir (timeout time.Duration , dir , desc , cmdName string , args ... string ) (string , string , error ) {
59
+ func ExecDirEnv (timeout time.Duration , dir , desc string , env [] string , cmdName string , args ... string ) (string , string , error ) {
60
60
if timeout == - 1 {
61
61
timeout = DefaultTimeout
62
62
}
@@ -66,6 +66,7 @@ func ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (
66
66
67
67
cmd := exec .Command (cmdName , args ... )
68
68
cmd .Dir = dir
69
+ cmd .Env = env
69
70
cmd .Stdout = bufOut
70
71
cmd .Stderr = bufErr
71
72
if err := cmd .Start (); err != nil {
@@ -93,6 +94,11 @@ func ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (
93
94
return bufOut .String (), bufErr .String (), err
94
95
}
95
96
97
+ // ExecDir works exactly like ExecDirEnv except no environment variable is provided.
98
+ func ExecDir (timeout time.Duration , dir , desc , cmdName string , args ... string ) (string , string , error ) {
99
+ return ExecDirEnv (timeout , dir , desc , nil , cmdName , args ... )
100
+ }
101
+
96
102
// ExecTimeout runs a command and waits for its completion
97
103
// up to the given timeout (or DefaultTimeout if -1 is given).
98
104
// Returns its complete stdout and stderr
0 commit comments