diff options
author | Michael Scherer <misc@mageia.org> | 2010-11-19 00:46:13 +0000 |
---|---|---|
committer | Michael Scherer <misc@mageia.org> | 2010-11-19 00:46:13 +0000 |
commit | 50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce (patch) | |
tree | 90c6007b08847206ef71b0cfb65f38d361c7d8c5 | |
parent | 090867e1a559885b11c914c977cfd2843c5ee746 (diff) | |
download | puppet-50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce.tar puppet-50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce.tar.gz puppet-50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce.tar.bz2 puppet-50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce.tar.xz puppet-50830d1e9be5e6a6cefcbe48e63dd7c8dd9defce.zip |
- add a type to handle syntax check script
-rw-r--r-- | modules/subversion/manifests/init.pp | 22 | ||||
-rw-r--r-- | modules/subversion/templates/syntax_check.sh | 21 |
2 files changed, 36 insertions, 7 deletions
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 + |