fix(run.go): fixed command pipes
This commit is contained in:
parent
109535214a
commit
a7651c5b0b
1 changed files with 23 additions and 9 deletions
32
run.go
32
run.go
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
@ -86,16 +85,31 @@ func run(conn net.Conn, instance string, program string, arguments string, targe
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
cmd := exec.Command("sh", "-c", command.(string)+" "+arguments)
|
env := []string{"APP_DIR=" + package_path, "VAR_DIR=" + var_path}
|
||||||
cmd.Dir = working_dir
|
return run_command(conn, command.(string)+" "+arguments, working_dir, env)
|
||||||
cmd.Env = append(cmd.Environ(), "APP_DIR="+package_path, "VAR_DIR="+var_path)
|
}
|
||||||
cmd.Stdout = io.MultiWriter(conn, os.Stdout)
|
|
||||||
cmd.Stderr = io.MultiWriter(conn, os.Stderr)
|
func run_command(conn net.Conn, command string, workdir string, env_vars []string) (int, error) {
|
||||||
|
cmd := exec.Command("sh", "-c", command)
|
||||||
|
cmd.Dir = workdir
|
||||||
|
if env_vars != nil {
|
||||||
|
cmd.Env = append(cmd.Environ(), env_vars...)
|
||||||
|
}
|
||||||
|
cmd.Stdout = conn
|
||||||
|
cmd.Stderr = conn
|
||||||
cmd.Stdin = conn
|
cmd.Stdin = conn
|
||||||
err = cmd.Run()
|
err := cmd.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
response := make(map[string]interface{})
|
||||||
return 0, nil
|
response["command"] = "start-command-pipe"
|
||||||
|
response_json, _ := json.Marshal(response)
|
||||||
|
conn.Write(response_json)
|
||||||
|
state, err := cmd.Process.Wait()
|
||||||
|
response["command"] = "end-command-pipe"
|
||||||
|
response["status_code"] = state.ExitCode()
|
||||||
|
response_json, _ = json.Marshal(response)
|
||||||
|
conn.Write(response_json)
|
||||||
|
return state.ExitCode(), err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue