summaryrefslogtreecommitdiffstats
path: root/bin/git-clone.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/git-clone.sh')
-rwxr-xr-xbin/git-clone.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/git-clone.sh b/bin/git-clone.sh
new file mode 100755
index 0000000..4a619c5
--- /dev/null
+++ b/bin/git-clone.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+set -e
+
+for DIRECTORY in \
+ /srv/local/bin /srv/local/web \
+ /srv/data/*/bin /srv/data/*/web \
+ /srv/*/bin /srv/*/web
+do
+ if [ ! -e "${DIRECTORY}/.git/config" ]
+ then
+ continue
+ fi
+
+ URL="$(awk '/url = / { print $3 }' ${DIRECTORY}/.git/config)"
+
+ if [ -z "${URL}" ]
+ then
+ continue
+ fi
+
+ git clone "${URL}" "${DIRECTORY}.tmp"
+
+ cd "${DIRECTORY}.tmp"
+ git submodule init
+ git submodule update
+ cd "${OLDPWD}"
+
+ rm -rf "${DIRECTORY}"
+ mv "${DIRECTORY}.tmp" "${DIRECTORY}"
+
+ chown 1000:1000 "${DIRECTORY}" -R
+done