• 分享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
  • 相关阅读:
    HashMap和HashTable区别【转载】
    Linux常用指令【转载】
    遇到的eclipse启动报错问题解决
    个人总结
    结对编程之黄金点游戏
    第三周作业二
    vs2013的安装以及单元测试
    小学生整数四则运算
    对于迅雷下载器的评价
    关于软件工程的疑问
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5304947.html
Copyright © 2020-2023  润新知