Skip to content

Silent failure on systems with Debian bash completion #239

@predakanga

Description

@predakanga

Background: I'm currently working to improve our developer experience by rolling herokuish into a Vagrant image, discovered this issue in the final steps.

Symptoms: When running herokuish procfile start web on a system with Debian's bash completion installed, herokuish exits silently with exit code 1

Trace: trace.txt

Diagnosis:
The problem occurs at procfile-load-profile, during the loading of bash completion. The problem occurs because bash completion and set -e are incompatible, as documented in this debian bug.
Ordinarily the bash completion doesn't run for interactive shells, but it detects interactivity by checking PS1 (i.e. if [ -n "$BASH_VERSION" -a -n "$PS1" -a -z "$BASH_COMPLETION_COMPAT_DIR" ]; then, which is expected behaviour as per bash's documentation), while herokuish sets it's own PS1 unconditionally.

Unfortunately I don't know what the best way to solve this is, otherwise I would provide a PR - does herokuish actually need to set that PS1? Should it only be set immediately prior to procfile-exec?

In the meantime I've modified the interactivity check in my VM, but that's not great long term.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions