mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-12 17:15:37 +00:00
feature: pass ot_ args to shellAfterCompleted (#420)
* feature: pass ot_ args to shellAfterCompleted * refactor: Implement this the right way --------- Co-authored-by: James Read <contact@jread.com>
This commit is contained in:
@@ -454,10 +454,10 @@ func (ost *OutputStreamer) String() string {
|
||||
return ost.output.String()
|
||||
}
|
||||
|
||||
func buildEnv(req *ExecutionRequest) []string {
|
||||
func buildEnv(args map[string]string) []string {
|
||||
ret := append(os.Environ(), "OLIVETIN=1")
|
||||
|
||||
for k, v := range req.Arguments {
|
||||
for k, v := range args {
|
||||
varName := fmt.Sprintf("%v", strings.TrimSpace(strings.ToUpper(k)))
|
||||
|
||||
// Skip arguments that might not have a name (eg, confirmation), as this causes weird bugs on Windows.
|
||||
@@ -480,7 +480,7 @@ func stepExec(req *ExecutionRequest) bool {
|
||||
cmd := wrapCommandInShell(ctx, req.finalParsedCommand)
|
||||
cmd.Stdout = streamer
|
||||
cmd.Stderr = streamer
|
||||
cmd.Env = buildEnv(req)
|
||||
cmd.Env = buildEnv(req.Arguments)
|
||||
|
||||
req.logEntry.ExecutionStarted = true
|
||||
|
||||
@@ -524,8 +524,10 @@ func stepExecAfter(req *ExecutionRequest) bool {
|
||||
var stderr bytes.Buffer
|
||||
|
||||
args := map[string]string{
|
||||
"output": req.logEntry.Output,
|
||||
"exitCode": fmt.Sprintf("%v", req.logEntry.ExitCode),
|
||||
"output": req.logEntry.Output,
|
||||
"exitCode": fmt.Sprintf("%v", req.logEntry.ExitCode),
|
||||
"ot_executionTrackingId": req.TrackingID,
|
||||
"ot_username": req.AuthenticatedUser.Username,
|
||||
}
|
||||
|
||||
finalParsedCommand, _, err := parseCommandForReplacements(req.Action.ShellAfterCompleted, args)
|
||||
@@ -541,6 +543,8 @@ func stepExecAfter(req *ExecutionRequest) bool {
|
||||
cmd.Stdout = &stdout
|
||||
cmd.Stderr = &stderr
|
||||
|
||||
cmd.Env = buildEnv(args)
|
||||
|
||||
runerr := cmd.Start()
|
||||
|
||||
waiterr := cmd.Wait()
|
||||
|
||||
Reference in New Issue
Block a user