2012-10-18 16 views
6

W skrypcie bash I zrobićzłapanie git po otrzymywać błąd w skrypcie

git push 

i sprawdzić jego stan wyjścia.

Na zdalnym serwerze znajduje się hak po otrzymaniu, który wykonuje kilka czynności. Jeśli wystąpi błąd, hak po otrzymaniu wyjdzie z niezerową wartością.

Jednak, gdy błędy po odebraniu hak, git push wyjść normalnie. Chyba że specjalnie sprawdzam dane wyjściowe pod kątem konkretnych ciągów błędów (których nie mam), mój skrypt uważa, że ​​wszystko poszło dobrze.

Czy istnieje łatwy sposób, aby ustalić, czy hak po otrzymaniu nie powiódł się?

+0

A co z badaniem * wyjścia * polecenia 'git push' zamiast samego wyjścia? Być może awaria haka jest wykrywalna gdzieś na wyjściu sformatowanym jako: '

-> ()'. Po prostu na głos ... –

+0

Tego właśnie chcę uniknąć. Ale jeśli nie mogę spowodować, że git wyjdzie z błędem w przypadku błędów po otrzymaniu, to myślę, że to właśnie będę musiał zrobić. – Jistanidiot

Odpowiedz

3

Tak więc odpowiedź brzmi "nie", nie ma możliwości łatwego sprawdzenia, czy hak po otrzymaniu nie powiódł się. Najlepsze, co możesz zrobić, to sprawdzić skrypt pod kątem danych wyjściowych z pilota i upewnić się, że echa po odebraniu są komunikatem o błędzie, którego szukasz.

W moim przypadku odbiór wstępny nie zadziała, ponieważ naciskam na ponowne utworzenie kopii zapasowej, a nowe zatwierdzenie musi zostać zaakceptowane, zanim będzie można je przekazać.

Zasadniczo po otrzymywać hak powinien zrobić coś takiego:

some-command-that-might-fail 

RC=$? 

if [ $RC -eq 0 ]; then 
echo -e "\nERROR: some-command-that-might-fail FAILED!!!!!!!! PANIC!!!!!!\n" 
fi 

Następnie skrypt robi push powinny grep wyjście do awarii lub błędu lub paniki i zgłoś post-otrzymywać błąd.

Powiązane problemy