Niveau :
Résumé :
Aujourd'hui nous allons mettre en valeur deux articles précédents. J'espère que vous avez déjà mis votre home sous un système de suivi de version pour suivre ses évolutions. J'ai déjà décrit à dans un article précédent. En résumé :
$ cd $ git init $ git add .bashrc # et tout ce que vous voulez $ git commit
Le but étant de propager tout cela automatiquement sur différentes machines. Il est difficile de toujours penser à mettre a jour lorsqu'on fait une modification. C'est pourquoi nous allons mettre à profit l'article précédent et intercepter ssh. Grâce à cela le home de toutes nos machines seront à jour sans qu'on ait à s'en préoccuper.
Mise en place
Cette fois nous allons modifier le script en question pour lancer automatiquement une mise à jour de git de façon furtive à chaque connexion ssh. La méthode run était prévue pour :
# test permettant de savoir qu'on est bien sur le bon dépôt git pour les mises à jour (id du premier commit) MASTER=11edf02e95ceac1fa58d4444f82f8cd4ae9c1cf5 # command tu run via the ssh socket run() { # no test if running init if [ "$MASTER" != "" ] then # test if distant has OUR git ssh -S "$1" XXX '[ -e /usr/bin/git ] && [ -d .git ] && git rev-list --reverse master 2>/dev/null | head -1' | grep "$MASTER" > /dev/null else ssh -S "$1" XXX '[ -e /usr/bin/git ]' fi if [ $? -eq 0 ] then # if yes push updates tmp=$(mktemp ~/.sshgit.XXXXXX) echo "#!/bin/sh" > $tmp echo "exec ssh -S $1 \"\$@\"" >> $tmp chmod +x $tmp GIT_SSH=$tmp git push --all ssh://XXX/~ > /dev/null 2> /dev/null rm -f $tmp ssh -S "$1" XXX 'git checkout -f > /dev/null' fi }
continue reading...