diff options
Diffstat (limited to 'modules/subversion')
-rw-r--r-- | modules/subversion/manifests/init.pp | 26 | ||||
-rw-r--r-- | modules/subversion/templates/create_svn_mirror.sh | 13 |
2 files changed, 39 insertions, 0 deletions
diff --git a/modules/subversion/manifests/init.pp b/modules/subversion/manifests/init.pp index 7f09b393..b5131cb5 100644 --- a/modules/subversion/manifests/init.pp +++ b/modules/subversion/manifests/init.pp @@ -273,4 +273,30 @@ class subversion { minute => $refresh } } + + class mirror { + include subversion::tools + file { "/usr/local/bin/create_svn_mirror.sh": + ensure => present, + owner => root, + group => root, + mode => 755, + content => template('subversion/create_svn_mirror.sh') + } + } + + define mirror_repository($source, + $refresh = '*/5') { + include subversion::mirror + + exec { "/usr/local/bin/create_svn_mirror.sh $name $source": + creates => $name, + require => Package['subversion-tools'] + } + + cron { "update $name": + command => "/usr/bin/svnsync synchronize file://$name", + minute => $refresh, + } + } } diff --git a/modules/subversion/templates/create_svn_mirror.sh b/modules/subversion/templates/create_svn_mirror.sh new file mode 100644 index 00000000..ab0ada1b --- /dev/null +++ b/modules/subversion/templates/create_svn_mirror.sh @@ -0,0 +1,13 @@ +#!/bin/bash +umask 0002 +LOCAL_REPOS=$1 +REMOTE_REPOS=$2 +svnadmin create $LOCAL_REPOS +# needed, as svnsync complain otherwise : +# svnsync: Repository has not been enabled to accept revision propchanges; +# ask the administrator to create a pre-revprop-change hook +ln -s /bin/true $LOCAL_REPOS/hooks/pre-revprop-change +svnsync init file://$1 $2 +# do not sync now, +# let cron do it or puppet will complain ( especially for long sync ) +#svnsync synchronize file://$1 |