aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/osutil
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-07-17 13:55:55 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-07-17 14:45:41 +0200
commit8382eb648fe51db07a0a20d413f61d4a46ab6131 (patch)
treede73078c4d77938026e9c5887419c6f9ddb7c108 /pkg/osutil
parent7cdb3c70f79c9c898630629402e10b8a1c6cf3ca (diff)
pkg/kernel: actually pass cmdline/sysctl files to the build script
Diffstat (limited to 'pkg/osutil')
-rw-r--r--pkg/osutil/osutil.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/pkg/osutil/osutil.go b/pkg/osutil/osutil.go
index 99ab41780..fecb5f95b 100644
--- a/pkg/osutil/osutil.go
+++ b/pkg/osutil/osutil.go
@@ -21,11 +21,22 @@ const (
// RunCmd runs "bin args..." in dir with timeout and returns its output.
func RunCmd(timeout time.Duration, dir, bin string, args ...string) ([]byte, error) {
+ return runCmd(timeout, nil, dir, bin, args...)
+}
+
+// RunCmdEnv is the same as RunCmd but also appends env.
+func RunCmdEnv(timeout time.Duration, env []string, dir, bin string, args ...string) ([]byte, error) {
+ return runCmd(timeout, env, dir, bin, args...)
+}
+
+func runCmd(timeout time.Duration, env []string, dir, bin string, args ...string) ([]byte, error) {
output := new(bytes.Buffer)
cmd := exec.Command(bin, args...)
cmd.Dir = dir
cmd.Stdout = output
cmd.Stderr = output
+ cmd.Env = append([]string{}, os.Environ()...)
+ cmd.Env = append(cmd.Env, env...)
if err := cmd.Start(); err != nil {
return nil, fmt.Errorf("failed to start %v %+v: %v", bin, args, err)
}