Представляю вашему вниманию скрипт автоматического обновления из svn для *nix-like систем.
(Впрочем, если вам не лень компилить под винду bash, rsync, svn и некоторые другие стандартные утилиты, то будет работать и под виндой)
Требования:
Итак, теперь сам скрипт:
(Впрочем, если вам не лень компилить под винду bash, rsync, svn и некоторые другие стандартные утилиты, то будет работать и под виндой)
Требования:
- bash
- svn
- rsync
- право выполнения (+x)
- право на запись в каталог движка ;-)
#!/usr/local/bin/bash
########################
# cogear_update.sh #
########################
temp=/tmp/cogear
output=/usr/home/cogear/public_html
log=/usr/home/cogear/logs/update.log
mkdir -p $temp
echo 'Start update at' `date`>>$log
echo 'Start update at' `date`
cd $temp/
svn export 'http://subversion.assembla.com/svn/cogear/trunk/'|grep 'Exported revision'>>$log
echo 'Svn export at' `date`>>$log
echo 'Svn export at' `date`
cd ./cogear/
rsync -vRrut ./* $output/ >>$log
echo 'Rsync at' `date`>>$log
echo 'Rsync at' `date`
cd $output/
chmod -R 0777 ./engine/cache
chmod -R 0777 ./uploads
chmod 0777 `find ./* -name '*.info'`
rm -rf $temp
echo 'End update at' `date`>>$log
echo 'End update at' `date`
ВНИМАНИЕ!:Как обычно, жду ваших комментариев.
Чтобы скрипт заработал на OC отличной от freebsd, замените
#!/usr/local/bin/bashна полный путь к вашему bash
Кроме того:
Чтобы все отработало нормально через cron, не забудьте добавить в $path пути к исполняемым файлам (у меня это: /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin )


Кстати, я когда-то предлагал идею, добавлять в patch.sql первой строкой комментарий с датой и потом именно по этой строке обрабатывать необходимость патчинга (где-нибудь в движке хранить текущую ревизию). Как эта идея, прижилась, не?