diff --git a/action.yml b/action.yml index ce55154..83deeed 100644 --- a/action.yml +++ b/action.yml @@ -77,6 +77,12 @@ inputs: description: "pass all environment variable to shell script." request_pty: description: "Request a pseudo-terminal from the server." + capture_stdout: + description: "Capture the stdout of the commands." + default: "false" + capture_stderr: + description: "Capture the stderr of the commands." + default: "false" outputs: stdout: diff --git a/entrypoint.sh b/entrypoint.sh index 482a0c9..d78e6aa 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -68,11 +68,28 @@ chmod +x ${TARGET} echo "======= CLI Version =======" sh -c "${TARGET} --version" # print version echo "===========================" -{ - sh -c "${TARGET} $*" # run the command -} 2> /tmp/errFile | tee /tmp/outFile +if [ ${{ inputs.capture_stdout }} == 'true' ] || [ "${{ inputs.capture_stderr }}" == 'true' ]; then + _stdout=/dev/stdout + _stderr=/dev/stderr + if [ "${{ inputs.capture_stdout }}" == 'true' ]; then + _stdout=/tmp/outFile + fi + if [ "${{ inputs.capture_stderr }}" == 'true' ]; then + _stderr=/tmp/errFile + fi + + { + sh -c "${TARGET} $*" # run the command + } 2> $_stderr | tee $_stdout -stdout=$(cat /tmp/outFile) -stderr=$(cat /tmp/errFile) -echo "stdout=${stdout//$'\n'/\\n}" >> $GITHUB_OUTPUT -echo "stderr=${stderr//$'\n'/\\n}" >> $GITHUB_OUTPUT + if [ "${{ inputs.capture_stdout }}" == 'true' ]; then + stdout=$(cat $_stdout) + echo "stdout=${stdout//$'\n'/\\n}" >> $GITHUB_OUTPUT + fi + if [ "${{ inputs.capture_stderr }}" == 'true' ]; then + stderr=$(cat $_stderr) + echo "stderr=${stderr//$'\n'/\\n}" >> $GITHUB_OUTPUT + fi +else + sh -c "${TARGET} $*" # run the command +fi