diff --git a/dag/extdeps/shell/shell.dag b/dag/extdeps/shell/shell.dag index 18f59bbf711..9312c9b0709 100644 --- a/dag/extdeps/shell/shell.dag +++ b/dag/extdeps/shell/shell.dag @@ -215,7 +215,7 @@ service shell.Exec { } transport shell { - argv: ["sh", "-s"] + argv: ["bash", "-s"] stdin: script } exit { diff --git a/dag/test/claim/shell_exec_run_argv_embed_witness_test.dag b/dag/test/claim/shell_exec_run_argv_embed_witness_test.dag index 8a316d51ac4..df08bb74ae4 100644 --- a/dag/test/claim/shell_exec_run_argv_embed_witness_test.dag +++ b/dag/test/claim/shell_exec_run_argv_embed_witness_test.dag @@ -27,7 +27,18 @@ fn witness_shell_exec_run_uses_stdin_transport() -> Bool { src_has(path: shell_dag_path, needle: "stdin: script") } +fn witness_apply_script_requires_bash_receiver() -> Bool { + string_contains(s: live_deploy_apply_script_for(spec: deployment_spec_srv1()), pattern: "pipefail") +} + +fn witness_shell_exec_run_uses_bash_receiver() -> Bool { + src_has(path: shell_dag_path, needle: "argv: [\"bash\", \"-s\"]") + && !src_has(path: shell_dag_path, needle: "argv: [\"sh\", \"-s\"]") +} + test fn shell_exec_run_argv_embed_witnesses() -> Bool { witness_apply_script_exceeds_local_argv_embed_budget() && witness_shell_exec_run_uses_stdin_transport() + && witness_apply_script_requires_bash_receiver() + && witness_shell_exec_run_uses_bash_receiver() }