]> oss.titaniummirror.com Git - git-utils.git/commitdiff
Add the git-push-public script, which can be used to update public repos.
authorR. Steve McKown <rsmckown@gmail.com>
Wed, 16 Dec 2009 22:14:54 +0000 (15:14 -0700)
committerR. Steve McKown <rsmckown@gmail.com>
Wed, 16 Dec 2009 22:19:15 +0000 (15:19 -0700)
git-push-public [new file with mode: 0755]

diff --git a/git-push-public b/git-push-public
new file mode 100755 (executable)
index 0000000..559f609
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+# git-push-public
+#
+# Push changes from local git repositories marked as public, via the
+# git-daemon-export-ok flag, to the public server.
+
+LOCALBASE=/var/lib/git
+PUBLICBASE=/var/cache/git
+PUBLICSERVER=oss.titaniummirror.com
+
+echo "Updating remote public repositories"
+cd $LOCALBASE
+for path in $(find . -name git-daemon-export-ok); do
+    repo="${path/\/git-daemon-export-ok/}"
+    repo="${repo/.\//}"
+    echo "Repository $repo"
+    if ! ssh $PUBLICSERVER test -d $PUBLICBASE/$repo ; then
+       # Repo does not exist on public server, so create it
+        echo "Creating repository $repo on remote"
+       ssh $PUBLICSERVER git --git-dir=$PUBLICBASE/$repo init --bare
+       ssh $PUBLICSERVER touch $PUBLICBASE/$repo/git-daemon-export-ok
+       scp $repo/description $PUBLICSERVER:$PUBLICBASE/$repo/
+    fi
+    git --git-dir=$repo push --mirror $PUBLICSERVER:$PUBLICBASE/$repo
+done