Lv.的博客

分享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
posted @   Avatarx  阅读(301)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示