aboutsummaryrefslogtreecommitdiffstats
path: root/modules/subversion
diff options
context:
space:
mode:
Diffstat (limited to 'modules/subversion')
-rw-r--r--modules/subversion/manifests/init.pp19
-rw-r--r--modules/subversion/templates/create_svn_repo.sh7
2 files changed, 22 insertions, 4 deletions
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