aboutsummaryrefslogtreecommitdiff
path: root/grok-gitolite-setup.sh
diff options
context:
space:
mode:
authorAndy Doan <andy.doan@linaro.org>2015-01-28 14:02:17 -0600
committerAndy Doan <andy.doan@linaro.org>2015-01-28 14:02:17 -0600
commit1fc67884442302fbb771e59e666f7226c66ed3ab (patch)
treec634ac033ab10289303688e1646a875591ad25b1 /grok-gitolite-setup.sh
parentac6793e01a0e5c38b87f57fce123b60d7a60d63c (diff)
add script to help initialize grokmirror logic
Change-Id: Ia40778f43eaf03262b2f3be35afd69da596c5645
Diffstat (limited to 'grok-gitolite-setup.sh')
-rwxr-xr-xgrok-gitolite-setup.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/grok-gitolite-setup.sh b/grok-gitolite-setup.sh
new file mode 100755
index 0000000..b137944
--- /dev/null
+++ b/grok-gitolite-setup.sh
@@ -0,0 +1,47 @@
+#!/bin/sh -e
+
+# performs steps to install the grokmirror trigger in gitolite
+
+if [ $# -ne 3 ] ; then
+ echo "Usage: $0 <gitolite-admin-username> <repo_root> <manifest path>"
+ exit 1
+fi
+
+repo=$(mktemp -d)
+git clone $2/gitolite-admin.git $repo
+
+cd $repo
+git config user.email "$USER@localhost"
+git config user.name "$USER"
+git config push.default simple
+
+mkdir -p local/triggers
+cat >local/triggers/post-update.grokmirror <<EOF
+#!/bin/sh -e
+
+repos=$2
+manifest=$3
+
+log(){
+ echo "post-git trigger: \$*" 1>&2
+}
+
+cd \$repos
+
+if [ "\$4" = "R" ] ; then
+ # gitolite read operation, no updates needed
+ exit 0
+fi
+
+log "updating grokmirror"
+/usr/local/bin/grok-manifest -c -m \$manifest -t \$repos -n \$2.git
+chmod 655 \$manifest
+EOF
+
+chmod 755 local/triggers/post-update.grokmirror
+
+git add .
+git commit -a -m "add grokmirror setup"
+GL_USER=$(echo $1 | cut -d@ -f1) GL_REPO=gitolite-admin GL_LIBDIR=$HOME/gitolite/src/lib git push
+
+rm -rf $repo