Pedido condicional para o mercurial

1

Estou tentando ter um prompt semelhante a este:

$ some-folder (patch-name):

Consegui que isso funcionasse quando fiz o seguinte:

hg_ps1() {
    hg prompt " ({patch})" 2> /dev/null
}

export PS1='$ \W$(hg_ps1): '

No entanto, é assim que parece quando não tenho nenhum patch aplicado:

$ some-folder ():

Se não houver nenhum patch aplicado, prefiro que seja assim:

$ some-folder: 

Existe alguma maneira de fazer isso?

    
por saadq 30.06.2016 / 16:59

2 respostas

3

Você pode tornar a saída de hg_ps1 condicional nos resultados do comando hg por exemplo,

hg_ps1()
{
  typeset prmpt=$(hg prompt "{patch}" 2>/dev/null)
  [[ -n "$prmpt" ]] && echo " ($prmpt)"
}
    
por 30.06.2016 / 17:04
1

Você pode usar o seguinte para mostrar as correções aplicadas e não aplicadas:

hg prompt --angle-brackets "<patches|join( → )|pre_applied(${COLOR_BROWN})|post_applied(${COLOR_NC})|pre_unapplied(${COLOR_BLACK})|post_unapplied(${COLOR_NC})>"

Escolha as cores desejadas, por exemplo, Eu uso o seguinte:

COLOR_BROWN=$'\e[0;33m'
COLOR_NC=$'\e[0m' # No Color
COLOR_BLACK=$'\e[0;30m'
    
por 19.05.2017 / 00:40