Humus numericus

Aller au contenu | Aller au menu | Aller à la recherche

R, Spip et autres

Envoi de mail automatisé en cas d'erreur suite à un git pull

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… :-)