aboutsummaryrefslogtreecommitdiff
blob: 5009313885c47c18c93735423e5d663ae7b5dc8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

# get this from your .gitolite.conf; and don't forget this is shell, while
# that is perl :-)
export GL_ADMINDIR=/home/git/.gitolite

# checkout the master branch to $GL_ADMINDIR
GIT_WORK_TREE=$GL_ADMINDIR git checkout -f master

# remove all fragments.  otherwise, you get spurious error messages when you
# take away someone's delegation in the main config but the fragment is still
# hanging around.  The ones that are valid will get re-created anyway
rm -rf $GL_ADMINDIR/conf/fragments
# collect all the delegated fragments
mkdir  $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