-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Rose applications will run the configured command.
This command will be launched from a Python subshell with shell=True.
This will run the resulting script in /bin/sh, however, which shell /bin/sh is implemented by is unknown. This can lead workflow developers to create apps with portability barriers. E.G, a script might be developed for Bash which is then not portable to OS'es where /bin/sh does not point at /bin/bash.
Additionally, since this is a plain shell set -euo pipefail has not been specified, so [command]default = false; true will exit 0, where some users might expect it to exit 1.
It's not clear what we can sensibly do to handle the /bin/sh issue, however, it looks like at the very least we have a documentation issue, and two possible anti-patterns for a linter to detect (consider a Rose macro?).