From 8bd9b37f86eb5a29e90ac74520cffdf1c572fce0 Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Fri, 19 Apr 2019 10:38:02 -0700 Subject: Add script to update submodule URLs to use SSH This is a helper script for Freedom E SDK developers which makes it easy to use SSH for all submodules instead of HTTPS. Signed-off-by: Nathaniel Graff --- scripts/submodules-use-ssh.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 scripts/submodules-use-ssh.sh (limited to 'scripts') diff --git a/scripts/submodules-use-ssh.sh b/scripts/submodules-use-ssh.sh new file mode 100755 index 0000000..25a270d --- /dev/null +++ b/scripts/submodules-use-ssh.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env sh + +# By default, when you clone Freedom E SDK, submodules are instantiated with their +# origin URLs pointing to GitHub's HTTPS URL for the repository. + +# If you're a collaborator of this repository, it's annoying to update all the +# submodule URLs so that you can push to the repositories. This script fixes that +# by changing all the submodules to use SSH instead of HTTPS. If you're not a +# collaborator, don't bother using this script unless you really want to authenticate +# to GitHub with SSH for some reason. + +set -e +set -o pipefail + +SUBMODULE_PATHS=`grep -o "path = .*$" .gitmodules | cut -d ' ' -f 3` + +for SUBMODULE in $SUBMODULE_PATHS ; do + pushd $SUBMODULE > /dev/null + + OLD_URL=`git remote get-url origin` + + NEW_URL=`echo $OLD_URL | sed -e 's/https:\/\/github.com\//git@github.com:/'` + + echo "Updating URL for $SUBMODULE from $OLD_URL to $NEW_URL" + + git remote set-url origin $NEW_URL + + popd > /dev/null +done + -- cgit v1.2.1-18-gbd029