Revision
813
Author
misc
Date
2011-01-17 16:24:08 +0100 (Mon, 17 Jan 2011)

Log Message

add a new class to do a mirror of a svn reporitory ( for display purpose with viewvc or any others )

Modified Paths

Added Paths

Modified: puppet/modules/subversion/manifests/init.pp
===================================================================
--- puppet/modules/subversion/manifests/init.pp	2011-01-17 15:24:07 UTC (rev 812)
+++ puppet/modules/subversion/manifests/init.pp	2011-01-17 15:24:08 UTC (rev 813)
@@ -273,4 +273,30 @@
            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,
+        }   
+    } 
 }

Added: puppet/modules/subversion/templates/create_svn_mirror.sh
===================================================================
--- puppet/modules/subversion/templates/create_svn_mirror.sh	                        (rev 0)
+++ puppet/modules/subversion/templates/create_svn_mirror.sh	2011-01-17 15:24:08 UTC (rev 813)
@@ -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