SVN Checkout Script: Unterschied zwischen den Versionen

Aus MySlug
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „Das Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=SVN_Checkout_Script“)
Markierung: Ersetzt
 
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,<br />
Euer<br />
Gargi

Aktuelle Version vom 30. Juni 2018, 12:39 Uhr

Das Tutorial wurde nach Gargi.org verschoben: https://www.gargi.org/index.php?title=SVN_Checkout_Script