aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/swap-protocol.bash
diff options
context:
space:
mode:
Diffstat (limited to 'tools/swap-protocol.bash')
-rwxr-xr-xtools/swap-protocol.bash18
1 files changed, 18 insertions, 0 deletions
diff --git a/tools/swap-protocol.bash b/tools/swap-protocol.bash
new file mode 100755
index 0000000..a70e7fe
--- /dev/null
+++ b/tools/swap-protocol.bash
@@ -0,0 +1,18 @@
1#! /usr/bin/env bash
2
3target=''
4extra=''
5
6git remote -v \
7| while read remote url etc; do
8 [[ $etc =~ push ]] && extra='--push'
9 if [[ -z $target || $target == https ]] && [[ $url =~ git@.*github.com ]]; then
10 target=${target:-https}
11 sed -E 's#git@(.+):(.+)#https://\1/\2#' <<<$url | xargs git remote set-url $extra $remote
12 elif [[ -z $target || $target == git ]] && [[ $url =~ https://.*github.com ]]; then
13 target=${target:-git}
14 sed -E 's#https://([^/]+)/(.+)#git@\1:\2#' <<<$url | xargs git remote set-url $extra $remote
15 fi
16done
17
18git remote -v