分享SVN的钩子代码[借鉴学习]pre-commit-post 钩子

 
  1. #/bin/bash
  2. REPOS=$1
  3. TXN=$2
  4. export HOME=/
  5. export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  6. SVNLOOK=/usr/bin/svnlook
  7. CAT="$SVNLOOK cat -t $TXN $REPOS"
  8. $SVNLOOK changed -t "$TXN" "$REPOS" |awk '$1~/^[^D]/{print $NF}' |while read line; do
  9.         #bash syntax check
  10. # if echo $line |grep -q '\.sh$'; then
  11. # $CAT $line |bash -n 2>&2 && continue
  12. # echo "BASH SYNTAX ERROR: $line" >&2
  13. # exit 4
  14. # fi
  15.         #perl syntax check
  16.         if echo $line |grep -q '\.pl$'; then
  17.                 $CAT $line |perl -c 2>&2 && continue
  18.                 echo "PERL SYNTAX ERROR: $line" >&2
  19.                 exit 4
  20.         fi
  21.         #puppet syntax check
  22.         if echo $line |grep -q '\.pp$'; then
  23.                 $CAT "$line" |puppet --color=false --parseonly --ignoreimport >&2
  24.                 [ $? -eq 0 ] && continue
  25.                 echo "PUPPET SYNTAX ERROR: $line" >&2
  26.                 exit 4
  27.         fi
  28.         #erb syntax check
  29.         if echo $line |grep -q '\.erb$'; then
  30.                 $CAT $line |erb -x -T '-' |ruby -c 2>&2 && continue
  31.                 echo "ERB SYNTAX ERROR: $line" >&2
  32.                 exit 4
  33.         fi
  34. done
post-commit
  1. #!/bin/bash
  2. /usr/bin/svn update /etc/puppet/ --username test --password test >> /tmp/abc.out
  3. if [ $? == 0 ]
  4. then
  5.        echo "ok" >> /tmp/thisabc.out
  6.        /bin/rsync -avztpogdH --password-file=/opt/my2 /etc/puppet root@xxx.xxx.xxx.xxx::abc
  7. fi

转载于:https://www.cnblogs.com/lvdongjie/p/5304947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值