Permalink
Browse files

pta-hook.sh: collect delegated config fragments

collect the delegated config fragments from correspondingly named branches of
the gitolite-admin repo, and put them all in conf/fragments/

also deprecate changes to conf and keydir locations from now on
  • Loading branch information...
1 parent 5bb0850 commit 2f2af033f53954e919ca0b9fae94e521fbaf47ba Sitaram Chamarty committed Oct 3, 2009
Showing with 31 additions and 4 deletions.
  1. +6 −2 conf/example.gitolite.rc
  2. +25 −2 src/pta-hook.sh
View
@@ -57,8 +57,12 @@ $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m.log";
# --------------------------------------
-# I see even less reason to change these, since they're all relative to the
-# gitolite admin directory above, but hey it's *your* system...
+# Please DO NOT change the following paths unless you really know what you're
+# doing. It'll work for now but it's officially deprecated to have them
+# elsewhere from now on, and may break some future features.
+
+# Anyway, the conf files and keydirs don't grow constantly, (like the logs and
+# the repositories do), so I don't think this is a major problem for anyone.
$GL_CONF="$GL_ADMINDIR/conf/gitolite.conf";
$GL_KEYDIR="$GL_ADMINDIR/keydir";
View
@@ -1,6 +1,29 @@
#!/bin/sh
-GIT_WORK_TREE=/home/git/.gitolite git checkout -f
+# get this from your .gitolite.conf; and don't forget this is shell, while
+# that is perl :-)
+export GL_ADMINDIR=/home/git/.gitolite
-cd /home/git/.gitolite
+# checkout the master branch to $GL_ADMINDIR
+GIT_WORK_TREE=$GL_ADMINDIR git checkout -f master
+
+# collect all the delegated fragments
+mkdir -p $GL_ADMINDIR/conf/fragments
+for br in $(git for-each-ref --format='%(refname:short)')
+do
+ # skip master (duh!)
+ [[ $br == master ]] && continue
+ # all other branches *should* contain a file called <branchname>.conf
+ # inside conf/fragments; if so copy it
+ if git show $br:conf/fragments/$br.conf > /dev/null 2>&1
+ then
+ git show $br:conf/fragments/$br.conf > $GL_ADMINDIR/conf/fragments/$br.conf
+ echo "(extracted $br conf; `wc -l < $GL_ADMINDIR/conf/fragments/$br.conf` lines)"
+ else
+ echo " ***** ERROR *****"
+ echo " branch $br does not contain conf/fragments/$br.conf"
+ fi
+done
+
+cd $GL_ADMINDIR
src/gl-compile-conf

0 comments on commit 2f2af03

Please sign in to comment.