Golang_HomeWork/hw08_envdir_tool/executor.go

25 lines
393 B
Go

package main
import (
"os"
"os/exec"
)
func RunCmd(cmd []string, env Environment) (returnCode int) {
c := exec.Command(cmd[0], cmd[1:]...)
for k, v := range env {
c.Env = append(os.Environ(), k+"="+v)
}
c.Stdout = os.Stdout
c.Stderr = os.Stderr
if err := c.Run(); err != nil {
if code, ok := err.(*exec.ExitError); ok {
return code.ExitCode()
}
return -1
}
return 0
}