aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/swap-protocol.bash
blob: a70e7fe8a943ce8cd8d18c777da7769a2a07c67c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#! /usr/bin/env bash

target=''
extra=''

git remote -v \
| while read remote url etc; do
  [[ $etc =~ push ]] && extra='--push'
  if [[ -z $target || $target == https ]] && [[ $url =~ git@.*github.com ]]; then
    target=${target:-https}
    sed -E 's#git@(.+):(.+)#https://\1/\2#' <<<$url | xargs git remote set-url $extra $remote
  elif [[ -z $target || $target == git ]] && [[ $url =~ https://.*github.com ]]; then
    target=${target:-git}
    sed -E 's#https://([^/]+)/(.+)#git@\1:\2#' <<<$url | xargs git remote set-url $extra $remote
  fi
done

git remote -v