Eu sou muito ruim em scripts de shell (com bash), estou procurando uma maneira de verifique se o ramo git atual é "x" e anule o script se não for "x".
#!/usr/bin/env bash
CURRENT_BRANCH="$(git branch)"
if [[ "$CURRENT_BRANCH" -ne "master" ]]; then
echo "Aborting script because you are not on the master branch."
return; # I need to abort here!
fi
echo "foo"
mas isso não está certo
Respostas:
22 para resposta № 1Usar git rev-parse --abbrev-ref HEAD
para obter o nome da ramificação atual.
Depois, basta comparar valores no seu script:
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "x" ]]; then
echo "Aborting script";
exit 1;
fi
echo "Do stuff";
4 para resposta № 2
Uma opção seria analisar a saída do git branch
comando:
BRANCH=$(git branch | sed -nr "s/*s(.*)/1/p")
if [ -z $BRANCH ] || [ $BRANCH != "master" ]; then
exit 1
fi
Mas uma variante que usa comandos internos git para obter apenas o nome do ramo ativo, conforme sugerido por @knittl, é menos propensa a erros e preferível
3 para resposta № 3
Você quer usar exit
ao invés de return
.