Skip to content

rose subshells #2966

@oliver-sanders

Description

@oliver-sanders

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?).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions