From 293a499eae8f97729253147a6d608759ec28403a Mon Sep 17 00:00:00 2001 From: Michael Scherer Date: Fri, 19 Nov 2010 01:00:01 +0000 Subject: - try to workaround the missing feature of puppet about umask and Exec --- modules/subversion/manifests/init.pp | 19 +++++++++++++++---- modules/subversion/templates/create_svn_repo.sh | 7 +++++++ 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 modules/subversion/templates/create_svn_repo.sh diff --git a/modules/subversion/manifests/init.pp b/modules/subversion/manifests/init.pp index ae7676e2..22beda81 100644 --- a/modules/subversion/manifests/init.pp +++ b/modules/subversion/manifests/init.pp @@ -22,6 +22,15 @@ class subversion { ensure => directory, } + # workaround the lack of umask command in puppet < 2.7 + file { "/usr/local/bin/create_svn_repo.sh": + ensure => present, + owner => root, + group => root, + mode => 755, + content => template('subversion/create_svn_repo.sh') + } + define syntax_check($regexp_ext,$check_cmd) { file { "$local_dir/pre-commit.d/$name": ensure => present, @@ -105,7 +114,9 @@ class subversion { # $name ==> directory of the repo include subversion::server # TODO set umask -> requires puppet 2.7.0 - exec { "svnadmin create $name": + # unfortunatly, umask is required + # http://projects.puppetlabs.com/issues/4424 + exec { "/usr/local/bin/create_svn_repo.sh $name": user => root, group => $group, creates => "$name/hooks", @@ -129,7 +140,7 @@ class subversion { group => root, mode => 755, content => template("subversion/hook_commit.sh"), - require => Exec["svnadmin create $name"], + require => Exec["/usr/local/bin/create_svn_repo.sh $name"], } file { ["$name/hooks/post-commit.d", "$name/hooks/pre-commit.d"]: @@ -137,7 +148,7 @@ class subversion { owner => root, group => root, mode => 755, - require => Exec["svnadmin create $name"], + require => File["$name/hooks/pre-commit"], } if $commit_mail { @@ -147,7 +158,7 @@ class subversion { group => root, mode => 755, content => template("subversion/hook_sendmail.pl"), - require => [Exec["svnadmin create $name"], Package['perl-SVN-Notify-Config']], + require => [Package['perl-SVN-Notify-Config']], } } diff --git a/modules/subversion/templates/create_svn_repo.sh b/modules/subversion/templates/create_svn_repo.sh new file mode 100644 index 00000000..d1fb9f17 --- /dev/null +++ b/modules/subversion/templates/create_svn_repo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +umask 0002 +# needed for http://idolinux.blogspot.com/2010/05/subversion-svn-group-permissions.html +svnadmin create --pre-1.6-compatible "$1" +#chmod g+w "$1"/db/txn-current-lock +#chmod g+w "$1"/db/transactions +#chmod g+w "$1"/db/locks -- cgit v1.2.1