From 50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Fri, 19 Nov 2010 00:46:13 +0000 Subject: - add a type to handle syntax check script --- modules/subversion/manifests/init.pp | 22 +++++++++++++++------- modules/subversion/templates/syntax_check.sh | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 modules/subversion/templates/syntax_check.sh diff --git a/modules/subversion/manifests/init.pp b/modules/subversion/manifests/init.pp index 77887a3d..682f984b 100644 --- a/modules/subversion/manifests/init.pp +++ b/modules/subversion/manifests/init.pp @@ -18,15 +18,23 @@ class subversion { file { $local_dir: ensure => directory, } - # mettre tout les scripts dans le repertoire - } + define syntax_check($regexp_ext,$check_cmd) { + file { "$local_dir/pre-commit.d/$name": + ensure => present, + owner => root, + group => root, + mode => 755, + content => template('subversion/syntax_check.sh') + } + } - # TODO create proper hook directory ( see zarb.org ) - # create documentation - # - group who can commit - # - array for who get mail on what ( hash ) - # - array of where the directory is updated + # mettre tout les scripts dans le repertoire + syntax_check{"check_perl": + regexp_ext => ".p[lm]$", + check_cmd => "perl -c" + } + } # later, deploy a backup file ( ie, cron job to do a dump in some directory ) # TODO diff --git a/modules/subversion/templates/syntax_check.sh b/modules/subversion/templates/syntax_check.sh new file mode 100644 index 00000000..2fe1671c --- /dev/null +++ b/modules/subversion/templates/syntax_check.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +REPOS="$1" +TXN="$2" + +changed=`svnlook changed -t "$TXN" "$REPOS"` +files=`echo $changed | awk '{print $2}'` +if echo $files | grep <%= regexp_ext %> +then + svnlook cat -t "$TXN" "$REPOS" "$files" | <%= check_cmd %> + if [ $? -ne 0 ] + then + echo "Syntax error in $files." 1>&2 + echo "Check it with <%= check_cmd %>" + exit 1 + fi +fi + +# All checks passed, so allow the commit. +exit 0 + -- cgit v1.2.1