From f826a7c02b0f02e0aafd4be569339e33bde373fd Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 15 Mar 2018 11:05:53 +0100 Subject: [PATCH] Add misc script to switch git URLs --- dev/update.sh | 7 ------ misc/git_switch_urls.sh | 52 +++++++++++++++++++++++++++++++++++++++++ prod/update.sh | 7 ------ 3 files changed, 52 insertions(+), 14 deletions(-) create mode 100755 misc/git_switch_urls.sh diff --git a/dev/update.sh b/dev/update.sh index e0235af..0594c7e 100755 --- a/dev/update.sh +++ b/dev/update.sh @@ -21,13 +21,6 @@ then curr_branch="dev" fi -function update_git_urls { - find ./ -type f \( -name ".gitmodules" -o -name "config" \) -exec sed -i $REGEX {} + -} - -REGEX='s/https:\/\/github.com\//git@github.com:/g' -update_git_urls - # checkout new submodule git submodule update --init # Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules diff --git a/misc/git_switch_urls.sh b/misc/git_switch_urls.sh new file mode 100755 index 0000000..d8c1718 --- /dev/null +++ b/misc/git_switch_urls.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# The script detect the right main project branch, then update the submodule function of branch-[mainProjectBranch] +# For example, if you define these variables in .gitmodules : +# - branch-dev +# - branch-master +# If you are on dev branch in main project, the script will update submodule functions of branch-dev you've defined +# In main project, if you are in another branch than master or dev, it will take by default dev branch +# If you don't define any branches for you submodule, the script will update from master + +cd "$(dirname "$0")"/../../ + +function usage() { + echo "switch all git URLs to SSH or HTTPS and vice versa" + echo "" + echo "./git_switch_urls.sh" + echo " -h --help" + echo " -s --ssh : switch all repositories to SSH" + echo " -t --https : switch all repositories to HTTPS" + echo "" +} + + +function update_git_urls() { + find ./ -path ./var/lib -prune -o -type f \( -name ".gitmodules" -o -name "config" \) -exec sed -i $REGEX {} + +} + + +while [ "$1" != "" ]; do + PARAM=`echo $1 | awk -F= '{print $1}'` + VALUE=`echo $1 | awk -F= '{print $2}'` + case $PARAM in + -h | --help) + usage + exit + ;; + -s | --ssh) + REGEX='s/https:\/\/github.com\//git@github.com:/g' + update_git_urls + ;; + -t | --https) + REGEX='s/git@github.com:/https:\/\/github.com\//g' + update_git_urls + ;; + *) + echo "ERROR: unknown parameter \"$PARAM\"" + usage + exit 1 + ;; + esac + shift +done diff --git a/prod/update.sh b/prod/update.sh index 4a684e9..0594c7e 100755 --- a/prod/update.sh +++ b/prod/update.sh @@ -21,13 +21,6 @@ then curr_branch="dev" fi -function update_git_urls { - find ./ -type f \( -name ".gitmodules" -o -name "config" \) -exec sed -i $REGEX {} + -} - -REGEX='s/git@github.com:/https:\/\/github.com\//g' -update_git_urls - # checkout new submodule git submodule update --init # Synchronizes submodules' remote URL configuration setting to the value specified in .gitmodules -- 2.39.5