|
|
@@ -0,0 +1,41 @@
|
|
|
+#!/bin/bash
|
|
|
+#
|
|
|
+# Explicitly switches the relative submodules locations on GitHub to the original public URLs
|
|
|
+#
|
|
|
+# '../../group/repo.git' to 'https://github.com/group/repo.git'
|
|
|
+#
|
|
|
+# This can be useful for non-GitHub forks to automate getting of right submodules sources.
|
|
|
+#
|
|
|
+
|
|
|
+#
|
|
|
+# It makes sense to do
|
|
|
+#
|
|
|
+# git submodule deinit --force .
|
|
|
+# git submodule init
|
|
|
+#
|
|
|
+# before running this, and
|
|
|
+#
|
|
|
+# git submodule update --recursive
|
|
|
+#
|
|
|
+# after that. These were not included over this script deliberately, to use the script flexibly
|
|
|
+#
|
|
|
+
|
|
|
+set -o errexit
|
|
|
+set -o pipefail
|
|
|
+set -o nounset
|
|
|
+
|
|
|
+DEBUG_SHELL=${DEBUG_SHELL:-"0"}
|
|
|
+[ "${DEBUG_SHELL}" = "1" ] && set -x
|
|
|
+
|
|
|
+### '../../' relative locations
|
|
|
+
|
|
|
+for LINE in $(git config -f .gitmodules --list | grep "\.url=../../[^.]")
|
|
|
+do
|
|
|
+ SUBPATH=$(echo "${LINE}" | sed "s|^submodule\.\([^.]*\)\.url.*$|\1|")
|
|
|
+ LOCATION=$(echo "${LINE}" | sed 's|.*\.url=\.\./\.\./\(.*\)$|\1|')
|
|
|
+ SUBURL="https://github.com/$LOCATION"
|
|
|
+
|
|
|
+ git config submodule."${SUBPATH}".url "${SUBURL}"
|
|
|
+done
|
|
|
+
|
|
|
+git config --get-regexp '^submodule\..*\.url$'
|