From 525dfef9a797841287ceef4a95001aec85fc240f Mon Sep 17 00:00:00 2001 From: Munif Tanjim Date: Wed, 10 Jun 2020 22:53:56 +0600 Subject: [PATCH] fix(bash): last command status and command duration (#1185) * fix: character module last command status for bash * fix: command duration module for bash --- src/init/starship.bash | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/init/starship.bash b/src/init/starship.bash index 426063dea..663647e2e 100644 --- a/src/init/starship.bash +++ b/src/init/starship.bash @@ -34,6 +34,8 @@ starship_precmd() { # Run the bash precmd function, if it's set. If not set, evaluates to no-op "${starship_precmd_user_func-:}" + eval "$_PRESERVED_PROMPT_COMMAND" + # Prepare the timer data, if needed. if [[ $STARSHIP_START_TIME ]]; then STARSHIP_END_TIME=$(::STARSHIP:: time) @@ -70,8 +72,12 @@ else if [[ -z "$PROMPT_COMMAND" ]]; then PROMPT_COMMAND="starship_precmd" elif [[ "$PROMPT_COMMAND" != *"starship_precmd" ]]; then - # Remove any trailing semicolon before appending (PR #784) - PROMPT_COMMAND="${PROMPT_COMMAND%;};starship_precmd;" + # Appending to PROMPT_COMMAND breaks exit status ($?) checking. + # Prepending to PROMPT_COMMAND breaks "command duration" module. + # So, we are preserving the existing PROMPT_COMMAND + # which will be executed later in the starship_precmd function + _PRESERVED_PROMPT_COMMAND="$PROMPT_COMMAND" + PROMPT_COMMAND="starship_precmd" fi fi