aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/git-mass-update-server-info13
-rw-r--r--manifests/gitosis.pp19
2 files changed, 32 insertions, 0 deletions
diff --git a/files/git-mass-update-server-info b/files/git-mass-update-server-info
new file mode 100644
index 0000000..5735f69
--- /dev/null
+++ b/files/git-mass-update-server-info
@@ -0,0 +1,13 @@
+#!/bin/bash
+#
+# Run git-update-server-info on all repositories.
+#
+# This is script is needed when servir repositories directly
+# to dumb servers (eg. via HTTP).
+#
+
+REPOS="/var/git/repositories"
+
+for repo in `ls $REPOS`; do
+ ( cd $REPOS/$repo && su gitosis -c "git update-server-info" )
+done
diff --git a/manifests/gitosis.pp b/manifests/gitosis.pp
index ebe0c2a..853ca7e 100644
--- a/manifests/gitosis.pp
+++ b/manifests/gitosis.pp
@@ -64,4 +64,23 @@ class gitosis inherits git {
backup => false,
require => User["gitosis"],
}
+
+ # mass update script
+ file { "/usr/local/sbin/git-mass-update-server-info":
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 0755,
+ source => "puppet:///files/git/git-mass-update-server-info",
+ }
+
+ # mass update hourly
+ cron { "/usr/local/sbin/git-mass-update-server-info":
+ command => "/usr/local/sbin/git-mass-update-server-info &> /dev/null",
+ user => root,
+ hour => "*/1",
+ minute => "20",
+ ensure => present,
+ require => File['/usr/local/sbin/git-mass-update-server-info'],
+ }
}