]> git.phdru.name Git - dotfiles.git/commitdiff
.shellrc: Use `__git_ps1` if available
authorOleg Broytman <phd@phdru.name>
Thu, 6 Aug 2020 21:32:15 +0000 (00:32 +0300)
committerOleg Broytman <phd@phdru.name>
Thu, 6 Aug 2020 21:32:15 +0000 (00:32 +0300)
And configure it to my taste.

.shellrc
admin/prog/bash_prompt

index b4b7a8191b737e0da5d9006c0e92f631ee65110e..871747b3432d4e754b7c18126a591a628a1f15c8 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -346,11 +346,15 @@ mc() {
    if test -n "$BASH_VERSION"; then
       MC_SAVE_OPS1="$OPS1"
       if [ "`type -t short_curdir`" = function ]; then
-         OPS1="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\` "
+         OPS1="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\`"
          if test -x /usr/bin/git >/dev/null 2>&1; then
-            OPS1+="\$(prompt_git)"
+            if [ "`type -t __git_ps1`" = function ]; then
+               OPS1+="\$(__git_ps1)"
+            else
+               OPS1+="\$(prompt_git)"
+            fi
          fi
-         OPS1+="\\$\$SHLVL "
+         OPS1+=" \\$\$SHLVL "
       else
          OPS1="\u@\h:\W \\$"
       fi
index 13d0c2dc599dd78313cfb470cc8eb199da693d72..f3575b397e4d6806f7e96f89d64dc03358dd4257 100644 (file)
@@ -70,10 +70,23 @@ prompt_git() {
                       printf "(unknown)")"
 
         [ -n "$s" ] && s=" [$s]"
-        printf "%s" "$branchName$s "
+        printf " (%s)" "$branchName$s"
     fi
 }
 
+if test -x /usr/bin/git >/dev/null 2>&1; then
+   if [ "`type -t __git_ps1`" != function ]; then
+      git_sh_prompt=`git --exec-path`/git-sh-prompt
+      test -r $git_sh_prompt && . $git_sh_prompt || :
+   fi
+   if [ "`type -t __git_ps1`" = function ]; then
+      GIT_PS1_SHOWDIRTYSTATE=true
+      GIT_PS1_SHOWSTASHSTATE=true
+      GIT_PS1_SHOWUNTRACKEDFILES=true
+      GIT_PS1_SHOWUPSTREAM=verbose
+   fi
+fi
+
 set_prompts() {
       OPS1=''
       # display the user, host and current working directory
@@ -95,10 +108,14 @@ set_prompts() {
       esac
 
    OPS1+="${debian_chroot:+($debian_chroot)}"
-   OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\` "
+   OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\`"
    if test -x /usr/bin/git >/dev/null 2>&1; then
-      OPS1+="\$(prompt_git)"
+      if [ "`type -t __git_ps1`" = function ]; then
+         OPS1+="\$(__git_ps1)"
+      else
+         OPS1+="\$(prompt_git)"
+      fi
    fi
-   OPS1+="\\$\$SHLVL "
+   OPS1+=" \\$\$SHLVL "
    export OPS1
 }