Effettuare git-pull contemporanei per repository multipli in una location

Un interessante script che utilizzo per cercare in una directory (in questo caso /var/www/) tutti i repository git e fare un pull multiplo.

source ~/.keychain/$HOSTNAME-sh
find /var/www/ -type d -name .git \
  | xargs -n 1 dirname \
  | sort \
  | while read line; do echo $line && cd $line && git pull; done

La prima riga chiama keychain, uno speciale script bash che evita di dover inserire ogni volta che viene richiesta la chiave privata (generata in precedenza) la passphrase (altrimenti lo script non verrebbe eseguito). Successivamente viene effettuata la ricerca dei repo (tramite la dir .git), se essa ha esito positivo lo script effettua un git pull per ogni occorrenza (tanti pull quanti repo trova).

Se vogliamo effettuare il controllo ad esempio ogni 10 minuti basterĂ  inserirlo in /etc/crontab:

*/10 *   * * *   user    bash ~/scriptname.sh > ~/git.log

Ovviamente al posto di scriptname.sh inserite il nome che avete dato (e controllate la location, la tilde chiama la home dell’utente che metterete al posto di “user”. Il risultato verrĂ  stampato in ~/git.log.

Leave a Reply

Your email address will not be published. Required fields are marked *