Como posso definir um .bashrc PS1 diferente dependendo do diretório em que estou?

4

Eu tenho a configuração de script git-prompt.sh na minha% arquivo.bashrc que me dá a informação útil do git no meu prompt. Isso é ótimo para repos pequenos, mas quando eu cd em um repositório grande, pode demorar mais de 30 segundos, para o prompt responder, uma vez que ele precisa revisar o git repo primeiro.

É possível configurar meu .bashrc para que eu possa colocar na lista de permissões meus pequenos repositórios para o prompt do git ou listar meus grandes repositórios para que ele não carregue o prompt do git?
Alternativamente, eu ficaria feliz com um flag / variável que eu tenho que definir para ativar o prompt do git.

A parte relevante do meu .bashrc é assim:

##
# Git prompt options
##
source ~/.git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWSTASHSTATE=true
GIT_PS1_SHOWUNTRACKEDFILES=true
GIT_PS1_SHOWUPSTREAM="auto"

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$(__git_ps1 " (\[3[01;33m\]%s\[3[00m\])")\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__git_ps1 " (\[3[01;33m\]%s\[3[00m\])")\$ '
fi
unset color_prompt force_color_prompt
    
por Stephen RC 12.03.2013 / 22:19

1 resposta

3

Veja o código - o trabalho real é feito em uma função __git_ps1 , que é chamada dentro do prompt.

Substitua esta função pela sua própria função, por ex.

# this is only a outline of possible code 
function myFancyGitPS1() {
   case $(pwd) in
      */someDir/*)
           specialHandling
           ;;
      *)
           __git_ps1 " (\[3[01;33m\]%s\[3[00m\])"
          ;;
   esac
}
    
por H.-Dirk Schmitt 12.03.2013 / 22:26

Tags