2012-10-18 3 views
6

에 오류가 포스트받을 잡기 나는는 자식이 bash는 스크립트에서 스크립트

git push 

할 내가 종료 상태를 확인합니다.

원격 서버에는 몇 가지 작업을 수행하는 수신 후크가 있습니다. 오류가 발생하면 수신 후 후크가 0이 아닌 값으로 종료됩니다.

그러나 수신 후크 오류가 발생하면 git push가 정상적으로 종료됩니다. 특정 오류 문자열에 대한 출력을 구체적으로 확인하지 않는 한 (필자는 그렇지 않습니다) 스크립트는 모든 것이 좋다고 생각합니다.

포스트 수신 후크가 실패했는지 쉽게 판단 할 수 있습니까?

+0

종료 상태가 아닌'git push' 명령의 * 출력 *을 검사하는 것은 어떻습니까? 아마도 훅 실패는 '

-> ()'형식으로 출력되는 어딘가에서 감지 될 수 있습니다. 그냥 큰 소리로 생각하고 ... –

+0

그건 내가 실제로 피하고 싶습니다. 하지만 post-receive 오류가 발생했을 때 오류가있는 자식 노드를 종료 할 수 없다면 그 작업을 수행해야합니다. – Jistanidiot

답변

3

그래서 대답은 아니오입니다. 수신 후 후크가 실패했는지 쉽게 확인할 방법이 없습니다. 당신이 할 수있는 최선의 방법은 스크립트가 원격지에서의 출력을 점검하도록하고, 수신 후크가 찾고있는 오류 메시지를 확인하는 것입니다.

내 경우에는 다른 백업 저장소로 이동하고 밀어 넣기 전에 새 커밋을 수락해야하기 때문에 사전 수신 후크가 작동하지 않습니다.

기본적으로 포스트 - 수신과 같이해야 훅 :

some-command-that-might-fail 

RC=$? 

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

그런 다음 푸시를하고 스크립트가 실패 또는 오류 또는 PANIC에 대한 출력을 grep을하고 이후 나타난 오류를보고해야합니다.

관련 문제