|
|
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| Ich habe mir einmal ein Script geschrieben, das einen speziellen SVN Tree auf neue Revisionen überprüft. Wenn es neue Revisionen gibt liest das Script alle neue Revisionen ein und schickt die dahinter stehenden Logs als E-Mail zu.
| | Das Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=SVN_Checkout_Script |
| | |
| Das Script sieht wie folgt aus (für den Darkplaces Quake SVN Tree):
| |
| | |
| <code><pre>#!/bin/sh
| |
| | |
| mailadresse=Deine@mail.adresse
| |
| mail_subject="[System] News from the Darkplaces svn tree!"
| |
| ver_log=/var/log/dp_version_checkout.log
| |
| rev_log=/var/log/dp_rev.log
| |
| svn_tree=svn://svn.icculus.org/twilight/trunk/darkplaces
| |
| svn_server=svn.icculus.org
| |
| | |
| ping -c 1 $svn_server
| |
| if [ $? != 0 ]
| |
| then
| |
| exit 1
| |
| else
| |
| | |
| dp_version=$(svn info $svn_tree | grep "Revision:" | cut -d':' -f 2 | sed -e 's/ //g')
| |
| | |
| if [ -f $ver_log ]
| |
| then
| |
| ver_old=$(cat $ver_log)
| |
| else
| |
| echo $dp_version > $ver_log
| |
| exit 1
| |
| fi
| |
| | |
| if [ $ver_old = $dp_version ]
| |
| then
| |
| exit 1
| |
| else
| |
| steps=$(($dp_version-$ver_old))
| |
| fi
| |
| | |
| rm $rev_log
| |
| | |
| if [ $steps = 1 ]
| |
| then
| |
| echo "One new revision available:" > $rev_log
| |
| else
| |
| echo "$steps new revisions available:" > $rev_log
| |
| fi
| |
| | |
| i=1
| |
| while [ $i -le $steps ]; do
| |
| rev_neu=$(($ver_old+$i))
| |
| svn log -r $rev_neu $svn_tree >> $rev_log
| |
| i=`expr $i + 1`
| |
| done
| |
| | |
| mail -a "Content-Type: text/plain; charset=UTF-8" -s "$mail_subject" $mailadresse < $rev_log
| |
| rm $ver_log
| |
| echo $dp_version >> $ver_log
| |
| fi</pre></code>
| |
| | |
| ''Erklärung:''
| |
| '''mailadresse''' Da gebt Eure E-Mail Adresse an<br />
| |
| '''mail_subject''' Der Betreff, der in Eurer Mail erscheinen wird<br />
| |
| '''ver_log''' Die aktuelle Revision wird hier abgespeichert (am besten unter /var/log legen)<br />
| |
| '''rev_log''' Die ausgelesenen Revisionslogs werden hier abgespeichert. Am besten unter /var/log ablegen<br />
| |
| '''svn_tree''' Der SVN Tree, den Ihr überprüfen wollt.<br />
| |
| '''svn_server''' Der Server, auf dem der SVN Tree liegt.
| |
| | |
| Die Datei speichert nachdem Ihr oben im Kopfbereich Eure Variablen entsprechend angepasst habt unter '''/usr/local/bin/xyz_svncheckup''' ab. Für das xyz schreibt am besten irgendwas Eindeutiges, um unterschiedliche Scripte eideutig unterscheiden zu können. Das Script muss natürlich ausführbar gemacht werden:
| |
| | |
| <code><pre>chmod +x /usr/local/bin/xyz_svncheckup </pre></code>
| |
| | |
| Hinterlegt dann den Aufruf in Eure Crontab:
| |
| | |
| <code><pre>crontab -e</pre></code>
| |
| | |
| Für einen stündlichen Checkup:
| |
| | |
| <code><pre>0 */1 * * * /usr/local/bin/xyz_svncheckup > /dev/null</pre></code>
| |
| | |
| Viele Grüße,
| |
| Euer
| |
| Gargi
| |