From 9ebba9512de5b78c69bd6d134e5669ce3f17ec34 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Fri, 7 Aug 2020 00:32:15 +0300 Subject: [PATCH] .shellrc: Use `__git_ps1` if available And configure it to my taste. --- .shellrc | 10 +++++++--- admin/prog/bash_prompt | 25 +++++++++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/.shellrc b/.shellrc index b4b7a81..871747b 100644 --- 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 diff --git a/admin/prog/bash_prompt b/admin/prog/bash_prompt index 13d0c2d..f3575b3 100644 --- a/admin/prog/bash_prompt +++ b/admin/prog/bash_prompt @@ -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 } -- 2.39.5