|
@@ -36,6 +36,20 @@ func ExecuteWithPath(path string, name string, arg ...string) (*exec.Cmd, error)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func ExecuteWithDirAsync(path string, name string, arg ...string) (*exec.Cmd, error) {
|
|
|
|
+ // 创建一个Cmd对象,表示要执行的命令
|
|
|
|
+ cmd := exec.Command(name, arg...)
|
|
|
|
+ // 指定目录
|
|
|
|
+ cmd.Dir = path
|
|
|
|
+ err := cmd.Start()
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ } else {
|
|
|
|
+ // 执行命令并等待它完成d
|
|
|
|
+ return cmd, nil
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func ExecuteWithEnvAndDirAsync(envs []string, dir string, name string, arg ...string) (*exec.Cmd, error) {
|
|
func ExecuteWithEnvAndDirAsync(envs []string, dir string, name string, arg ...string) (*exec.Cmd, error) {
|
|
cmd := exec.Command(name, arg...)
|
|
cmd := exec.Command(name, arg...)
|
|
cmd.Dir = dir
|
|
cmd.Dir = dir
|
|
@@ -70,8 +84,20 @@ func Execute(name string, arg ...string) (*exec.Cmd, string, error) {
|
|
return cmd, string(combinedOutput), nil
|
|
return cmd, string(combinedOutput), nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func ExecuteSync(name string, arg ...string) (*exec.Cmd, string, error) {
|
|
|
|
+ cmd := exec.Command(name, arg...)
|
|
|
|
+ combinedOutput, err := cmd.CombinedOutput()
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, "", err
|
|
|
|
+ }
|
|
|
|
+ return cmd, string(combinedOutput), nil
|
|
|
|
+}
|
|
|
|
+
|
|
func ExecuteWithEnvSync(envs []string, name string, arg ...string) (*exec.Cmd, string, error) {
|
|
func ExecuteWithEnvSync(envs []string, name string, arg ...string) (*exec.Cmd, string, error) {
|
|
cmd := exec.Command(name, arg...)
|
|
cmd := exec.Command(name, arg...)
|
|
|
|
+ for _, env := range envs {
|
|
|
|
+ cmd.Env = append(cmd.Env, env)
|
|
|
|
+ }
|
|
combinedOutput, err := cmd.CombinedOutput()
|
|
combinedOutput, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, "", err
|
|
return nil, "", err
|