Como criar um aviso CLI personalizado

Como criar um aviso CLI personalizado

No Terminal, como posso configurar um aviso personalizado para que quando eu digitar um comando específico como

git pull origin master

o comando não é executado e recebo uma saída de aviso como

Did you mean git rebase origin/master?

Pensei em criar um script bash ou simplesmente usar um alias em meu perfil bash, mas não tenho certeza de qual seria o melhor método.

Obrigado.

Responder1

Não há ganchos, pre-pullmas você pode achar isso útilhttps://git-scm.com/docs/githooks#_post_merge

Ganchos em geral são bons, se você não os conhece.


Quanto ao alias você teria que criar um for git, como em criar uma função em .bashrcou .bash_aliasese verificar se os argumentos são pull origin master, se não invocar git, senão imprimir aviso. Ou um alias chamado git para um script personalizado - na verdade, um script wrapper para git.

Resumindo, porque um alias não pode conter espaços, portanto o alias teria que ser para o primeiro"palavra"também conhecido como comando.

Em .bash_aliasesou algo parecido:

mygit()
{
    if [ "$1" = "pull" ] && \
        [ "$2" = "origin" ] && \
        [ "$3" = "master" ]; then
        printf 'Did you mean git rebase origin/master?\n' >&2
        return 1
    else
        git "$@"
    fi
}

alias git=mygit

Ou nomeie a função, gitmas chame o git internamente por:

command git "$@"

em vez de git "@$".

Observe também:

Para quase todos os propósitos, as funções shell são preferidas aos aliases.

informação relacionada