aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Perepelitsa <roman.perepelitsa@gmail.com>2023-08-15 11:30:02 +0300
committerRoman Perepelitsa <roman.perepelitsa@gmail.com>2023-08-15 11:30:02 +0300
commitd8041e4700ace779aaf42e19c3de2d25a14dbae8 (patch)
treed4e260a521cd6897a8f3e6f19153982577d30531
parent9401ed17c0a8c3d1654214a204b8d5b5f7ccf386 (diff)
Squashed 'gitstatus/' changes from bdaad2e8d..38d35b959
38d35b959 cleanup 7e7b5e807 bash prompt: set PROMPT_COMMAND in a nicer and more robust manner (#403) 7ee9227de Merge branch 'samiam-append_prompt' 198ed58ce Revert "Update README to append to PROMPT_COMMAND" 8b6a229fa Switch to using var assignment for backward compatibility 693f9efa0 Update README to append to PROMPT_COMMAND a48175ce1 Append to PROMPT_COMMAND to play nice with other prompt programs git-subtree-dir: gitstatus git-subtree-split: 38d35b95926e09d07b8cf78edade7cee7a9a1dcf
-rw-r--r--gitstatus.prompt.sh11
1 files changed, 9 insertions, 2 deletions
diff --git a/gitstatus.prompt.sh b/gitstatus.prompt.sh
index 8ee28de0..f54c11ac 100644
--- a/gitstatus.prompt.sh
+++ b/gitstatus.prompt.sh
@@ -2,7 +2,7 @@
# Source gitstatus.plugin.sh from $GITSTATUS_DIR or from the same directory
# in which the current script resides if the variable isn't set.
-if [[ -n "${GITSTATUS_DIR:-}" ]]; then
+if [[ -n "${GITSTATUS_DIR-}" ]]; then
source "$GITSTATUS_DIR" || return
elif [[ "${BASH_SOURCE[0]}" == */* ]]; then
source "${BASH_SOURCE[0]%/*}/gitstatus.plugin.sh" || return
@@ -85,7 +85,14 @@ function gitstatus_prompt_update() {
gitstatus_stop && gitstatus_start -s -1 -u -1 -c -1 -d -1
# On every prompt, fetch git status and set GITSTATUS_PROMPT.
-PROMPT_COMMAND=gitstatus_prompt_update
+if [[ -z "${PROMPT_COMMAND[*]}" ]]; then
+ PROMPT_COMMAND=gitstatus_prompt_update
+elif [[ ! "${PROMPT_COMMAND[*]}" =~ [[:space:]\;]?gitstatus_prompt_update[[:space:]\;]? ]]; then
+ # Note: If PROMPT_COMMAND is an array, this will modify its first element.
+ PROMPT_COMMAND=$'gitstatus_prompt_update\n'"$PROMPT_COMMAND"
+fi
+
+# Retain 3 trailing components of the current directory.
PROMPT_DIRTRIM=3
# Enable promptvars so that ${GITSTATUS_PROMPT} in PS1 is expanded.