Basta escrever uma função:
my-git-add-.() {
[ -e readme.md ] && doctoc readme.md
[ -e changelog.md ] && changelogupd changelog.md
git add .
}
Procurei isso em outras perguntas, mas parece que não consigo encontrar nada parecido. No entanto, isso parece bastante útil.
Desejo configurar um snippet / alias do ZSH para meu git add .
, para que ele execute três tarefas em uma cadeia:
./readme.md
existir, execute doctoc (aplicativo CLI instalado globalmente a partir do npm) nele. Se isso não acontecer , não faça nada e pule para a próxima etapa. ./changelog.md
existir, execute um script CLI local diferente instalado nele (digamos, chamado changelogupd
). Se isso não acontecer , não faça nada e pule para a próxima etapa. git add .
Atualmente, tenho dois comandos encadeados em .zshrc
alias como este e funciona:
path-exists ./readme.md && doctoc readme.md && git add . || git add .
Mas eu quero três : duas verificações de caminho e chamadas condicionais mais git add .
A propósito. o path-exists
é path-exists-cli , globalmente instalado via npm.
Três cadeias de comando parecem complicadas, abaixo está uma mistura sem sentido para mostrar a coisa difícil que estou procurando:
path-exists ./readme.md && doctoc readme.md && git add . || path-exists ./changelog.md && changelogupd changelog.md && git add . || git add .
Devo tentar cobrir todos os quatro casos usando canais duplos:
(
readme
presente, não changelog
, mais git add .
readme
não presente, não changelog
, mais git add .
readme
e changelog
presente, mais git add .
readme
mas changelog
presente, mais git add .
ou existe uma maneira mais fácil (ou uma biblioteca npm CLI ou algum comando de terminal secreto)?
Isto é para ser executado em um terminal Mac pelo caminho. Obrigado.
path-exists ./readme.md && { doctoc readme.md; :; } || \
path-exists ./changelog.md && { changelogupd changelog.md; :; }
git add .
Você precisa agrupar os comandos para alcançar o que você está querendo. A instrução :
foi adicionada para fornecer um final verdadeiro quando o doctoc pode falhar.