diff options
Diffstat (limited to 'bin/git-clone.sh')
-rwxr-xr-x | bin/git-clone.sh | 33 |
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 |