mirror of
https://github.com/OliveTin/OliveTin
synced 2025-12-13 09:35: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()
|
return ost.output.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildEnv(req *ExecutionRequest) []string {
|
func buildEnv(args map[string]string) []string {
|
||||||
ret := append(os.Environ(), "OLIVETIN=1")
|
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)))
|
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.
|
// 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 := wrapCommandInShell(ctx, req.finalParsedCommand)
|
||||||
cmd.Stdout = streamer
|
cmd.Stdout = streamer
|
||||||
cmd.Stderr = streamer
|
cmd.Stderr = streamer
|
||||||
cmd.Env = buildEnv(req)
|
cmd.Env = buildEnv(req.Arguments)
|
||||||
|
|
||||||
req.logEntry.ExecutionStarted = true
|
req.logEntry.ExecutionStarted = true
|
||||||
|
|
||||||
@@ -524,8 +524,10 @@ func stepExecAfter(req *ExecutionRequest) bool {
|
|||||||
var stderr bytes.Buffer
|
var stderr bytes.Buffer
|
||||||
|
|
||||||
args := map[string]string{
|
args := map[string]string{
|
||||||
"output": req.logEntry.Output,
|
"output": req.logEntry.Output,
|
||||||
"exitCode": fmt.Sprintf("%v", req.logEntry.ExitCode),
|
"exitCode": fmt.Sprintf("%v", req.logEntry.ExitCode),
|
||||||
|
"ot_executionTrackingId": req.TrackingID,
|
||||||
|
"ot_username": req.AuthenticatedUser.Username,
|
||||||
}
|
}
|
||||||
|
|
||||||
finalParsedCommand, _, err := parseCommandForReplacements(req.Action.ShellAfterCompleted, args)
|
finalParsedCommand, _, err := parseCommandForReplacements(req.Action.ShellAfterCompleted, args)
|
||||||
@@ -541,6 +543,8 @@ func stepExecAfter(req *ExecutionRequest) bool {
|
|||||||
cmd.Stdout = &stdout
|
cmd.Stdout = &stdout
|
||||||
cmd.Stderr = &stderr
|
cmd.Stderr = &stderr
|
||||||
|
|
||||||
|
cmd.Env = buildEnv(args)
|
||||||
|
|
||||||
runerr := cmd.Start()
|
runerr := cmd.Start()
|
||||||
|
|
||||||
waiterr := cmd.Wait()
|
waiterr := cmd.Wait()
|
||||||
|
|||||||
Reference in New Issue
Block a user