Envoi de mail automatisé en cas d'erreur suite à un git pull
Par Juba le vendredi 15 avril 2011, 14:10 - Linux, Debian, etc. - Lien permanent
J'utilise git pour différentes choses au quotidien, mais en particulier pour synchroniser divers fichiers entre différentes machines (fichiers de conf, fichiers org, etc.).
Pour cela j'ai un scipt shell très simple qui se lance à chaque démarrage ou extinction de la machine et qui effectue une série de git pull
/ git push
. Un truc du genre :
echo "-> Syncing ~" cd /home/julien git pull git add . git commit -a -m "Maj auto home" git push
Le problème avec cette méthode est que je ne regarde pas sytématiquement la sortie de ce script, et que je peux donc passer à côté de messages d'erreur me signalant des conflits non résolus suite à un merge automatique. Je cherchais donc un moyen d'être averti par mail si ce type d'erreur se produit.
Suite à une question sur StackOverflow, j'ai pu voir qu'il ne semble pas y avoir de hook dans git pour ce type de cas de figure. Je me suis donc rabattu sur le code de retour de git pull
.
Ce qui donne en gros le code suivant :
echo "-> Syncing ~" cd /home/julien git pull 2> /tmp/git_pull_output.txt if [ $? != 0 ] then mail -s "[git] Git pull failed for home" julien < /tmp/git_pull_output.txt fi
Maintenant j'attends d'avoir un vrai conflit pour voir si ça marche…