-
-
Notifications
You must be signed in to change notification settings - Fork 189
Description
Occasionally .bashrc (or similar) has an existing trap 'foo' DEBUG which can conflict with auto.sh's. I recently hit this problem since I noticed .ruby-version was being ignored.
The way I fixed this was to patch auto.sh to have:
function chruby_trap() {
[[ "$BASH_COMMAND" != "$PROMPT_COMMAND" ]] && chruby_auto
}
if [[ -n "$ZSH_VERSION" ]]; then
if [[ ! "$preexec_functions" == *chruby_auto* ]]; then
preexec_functions+=("chruby_auto")
fi
elif [[ -n "$BASH_VERSION" ]]; then
trap chruby_trap DEBUG
fiThen in my .bashrc, after loading chruby.sh and auto.sh, after any other calls, I provide my own trap:
# Reset color for command output and call this new `chruby_trap` function
trap 'foo_bar; chruby_trap' DEBUGObviously chruby_auto would also have worked, if I'd provided the explicit $BASH_COMMAND != $PROMPT_COMMAND check, but I figured it was possible that "setting up the trap" wouldn't necessarily always be the same as "call chruby_auto", hence the extra function.
I can submit a PR if you're happy with the idea (probably with refinements). Failing that, I can also submit a README note to mention that auto.sh will set a DEBUG trap and explain how to wrap it with chruby_auto.