使用SVN的hook將更新內容同步到測試環境

#!/bin/shphp

# 庫的路徑
REPOS=」$1″
# 新提交的版本號
REV=」$2″nginx

WEB=/data/web
FRAMEWORK=/data/framework
export LC_ALL=zh_CN.UTF-8web

changed=$(svnlook changed -r $REV $REPOS)
log=$(svnlook log -r $REV $REPOS)
n=$’\n’shell

/usr/local/php/bin/php-cgi -q /data/shell/svn_post_commit_resources.php 「$changed」 &
————————————–svn

處理更新內容,執行更新命令的PHP腳本文件 svn_post_commit_resources.php 的內容:
—————————————–
$files = explode("\n", $argv[1]);
if (!is_array($files)) {$files=(array)$files;};post

foreach ($files as $v)
{
       // 取文件名
       $f_tem = trim(substr($v, 2));
       // 取最頂層目錄名
       $d_tem = substr($f_tem, 0, strpos($f_tem, '/'));
       if (!in_array($d_tem, array('web', 'framework', 'conf', 'shell'))) {
               continue;
       }cmd

// SVN copy 對應的文件
       $f_name = '/data/' . $f_tem;
       $cmd = "svn update '$f_name' --username x****i --password K****$;chown www.www '$f_name'";it

exec($cmd);
       if (strpos($f_tem, 'nginx.conf')) {
               exec("kill -HUP `cat /dev/shm/nginx.pid`");
       }
}
exit();
?>date

相關文章
相關標籤/搜索