GabbbaGandalf
30.11.09, 01:12
Hallo,
ich habe ein kleines Script geschrieben, das vom Svn Server nach jedem Commit ausgeführt wird und prüfen soll, ob ein neues Tag mit einem bestimmten Namensmuster (site_YYYYMMDDHHMM) erstellt wurde. Wenn ja soll ein Verzeichnis auf dem Webserver mittels svn switch auf diesen neuen Stand gebracht werden. Führt man das Script per SSH ganz normal auf dem Terminal aus, geht alles wunderbar. Hängt man es aber an das post-commit Script an, oder lässt es per Cron laufen, scheint der "svn list"-Befehl nichts auszugeben. Meine Tests haben ergeben, das auch ein umleiten von "svn list URL" in eine Datei, diese nicht füllen. Die Variable svnVersion ist nachher leer. Irgendjemand eine Idee warum das so ist, oder nen workaround?
#!/bin/bash
# Neuestes Tag herausbekommen (arbeitet nur interaktiv richtig):
svnVersion=$(/usr/bin/svn list https://xxxxx.de/svn/yyyyy/tags | grep "^site\_[0-9]\{12\}/$" | /usr/bin/sort -r | /usr/bin/head -n 1)
svnVersionPath=https://xxxxx.de/svn/yyyyy/tags/$svnVersion\site
# URL der aktuellen Onlineversion herausbekommen (arbeitet korrekt):
webVersionPath=$(/usr/bin/svn info /var/www/websites/site | grep URL | cut -f2 -d" ")
echo $webVersionPath >> /var/log/dailymail
echo $svnVersionPath >> /var/log/dailymail
if [ $webVersionPath != $svnVersionPath ]; then
date >> /var/log/dailymail
echo "New Version in Repository, updating ..." >> /var/log/dailymail
/usr/bin/svn switch https://xxx.de/svn/yyyyy/tags/$svnVersion\site/ /var/www/websites/union >> /var/log/dailymail
echo "Correcting Folder Permissions" >> /var/log/dailymail
chown -R www-data /var/www/websites/site/home/*/files
chown -R www-data /var/www/websites/site/home/*/gallery
echo "DONE" >> /var/log/dailymail
fi
ich habe ein kleines Script geschrieben, das vom Svn Server nach jedem Commit ausgeführt wird und prüfen soll, ob ein neues Tag mit einem bestimmten Namensmuster (site_YYYYMMDDHHMM) erstellt wurde. Wenn ja soll ein Verzeichnis auf dem Webserver mittels svn switch auf diesen neuen Stand gebracht werden. Führt man das Script per SSH ganz normal auf dem Terminal aus, geht alles wunderbar. Hängt man es aber an das post-commit Script an, oder lässt es per Cron laufen, scheint der "svn list"-Befehl nichts auszugeben. Meine Tests haben ergeben, das auch ein umleiten von "svn list URL" in eine Datei, diese nicht füllen. Die Variable svnVersion ist nachher leer. Irgendjemand eine Idee warum das so ist, oder nen workaround?
#!/bin/bash
# Neuestes Tag herausbekommen (arbeitet nur interaktiv richtig):
svnVersion=$(/usr/bin/svn list https://xxxxx.de/svn/yyyyy/tags | grep "^site\_[0-9]\{12\}/$" | /usr/bin/sort -r | /usr/bin/head -n 1)
svnVersionPath=https://xxxxx.de/svn/yyyyy/tags/$svnVersion\site
# URL der aktuellen Onlineversion herausbekommen (arbeitet korrekt):
webVersionPath=$(/usr/bin/svn info /var/www/websites/site | grep URL | cut -f2 -d" ")
echo $webVersionPath >> /var/log/dailymail
echo $svnVersionPath >> /var/log/dailymail
if [ $webVersionPath != $svnVersionPath ]; then
date >> /var/log/dailymail
echo "New Version in Repository, updating ..." >> /var/log/dailymail
/usr/bin/svn switch https://xxx.de/svn/yyyyy/tags/$svnVersion\site/ /var/www/websites/union >> /var/log/dailymail
echo "Correcting Folder Permissions" >> /var/log/dailymail
chown -R www-data /var/www/websites/site/home/*/files
chown -R www-data /var/www/websites/site/home/*/gallery
echo "DONE" >> /var/log/dailymail
fi