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

分享SVN的钩子代码[借鉴学习]pre-commit-post 钩子的更多相关文章

  1. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  2. git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?

    最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...

  3. linux上配置subversion服务器端安装配置并使用svn,windows本地检出,设置同步更新服务器的钩子

    参考http://my.oschina.net/junn/blog/164041 http://songxj.blog.51cto.com/620981/396113 http://5iwww.blo ...

  4. day 84 Vue学习四之过滤器、钩子函数、路由、全家桶等

      本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤器 1 moment.js 在这里我们先介绍一个 ...

  5. 企业SVN版本管理与代码上线方案

    1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Sv ...

  6. Android Studio配置SVN 以及使用代码管理

    一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...

  7. day 83 Vue学习四之过滤器、钩子函数、路由、全家桶等

    Vue学习四之过滤器.钩子函数.路由.全家桶等   本节目录 一 vue过滤器 二 生命周期的钩子函数 三 vue的全家桶 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 Vue的过滤 ...

  8. SVN上传代码

    概述 SVN上传代码 使用SVN工具上传代码到新浪SAE 1.下载SVN工具http://tortoisesvn.net/downloads.html 2.创建一个文件夹,Checkout,输入SAE ...

  9. 两个SVN仓库之间代码的转移

    背景: 1.公司的svn服务器架设在了公司内网环境中,没有公网ip,所以离开了公司环境就无法访问(更新.提交...)svn服务器了: 2.四个开发人员去客户现场开发新的需求,在现场找了一台服务器临时搭 ...

随机推荐

  1. 自定义 SharePoint 2010 快速启动栏和顶部链接栏

    转:http://vickynuli.blog.163.com/blog/static/180438492201281434249486/ 在网上找到篇文章,自定义快速启动栏和顶部链接栏,以下为代码, ...

  2. 经典SQL语句大全_主外键_约束

    一.基础(建表.建约束.关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整 ...

  3. 《深入Java虚拟机学习笔记》- 第2章 平台无关

    Java虚拟机学习笔记(二)平台无关

  4. Myeclipse *.link用法

    引用路径 path=D:\\ProgramData\\MyEclipse\\adt

  5. 【转】为什么C++编译器不能支持对模板的分离式编译

    出处:刘未鹏(pongba) http://blog.csdn.net/pongba)   首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h ...

  6. 【暑假】[深入动态规划]UVa 1380 A Scheduling Problem

     UVa 1380 A Scheduling Problem 题目: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41557 ...

  7. 笔记:1.css样式,最前边加 @charset "utf-8";是为什么2.js判断各种浏览器的方法

    表明CSS文件的页面编码为UTF-8..如果这个CSS的文件编码也是UTF-8的话..那么在浏览器中看到的CSS文件的页面中中文的注释或者中文字体就可以正确显示为中文,如果CSS的文件编码和页面不一致 ...

  8. 【转载】c++中的 extern "C"(讲的更好一些)

    [说明]本文章转载自 东边日出西边雨 的文章http://songpengfei.iteye.com/blog/1100239 ------------------------------------ ...

  9. Tomcat普通用户启动注意事项

    今天项目部署上线,老大跟我建议说不要使用root用户部署,试用普通用户运行.刚开始没想什么,后来部署的时候碰到各种权限问题. 记录一下,以防忘记了. 1.使用普通用户启动失败. 首先不用想就去$TOM ...

  10. android sqlite 中存储 long 数据

    在資料庫的技術中,一個資料庫(Database)表示應用程式儲存與管理資料的單位,應用程式可能需要儲存很多不同的資料,例如一個購物網站的資 料庫,就需要儲存與管理會員.商品和訂單資料.每一種在資料庫中 ...