Initial commit.
This commit is contained in:
45
git-switch-http-to-ssh.sh
Normal file
45
git-switch-http-to-ssh.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
CMD='git remote -v'
|
||||||
|
INPUT_RGX='https?:\/\/((\w|\.)+)\/(.*)'
|
||||||
|
OUTPUT_RGX='git@\1:\3'
|
||||||
|
|
||||||
|
ACCEPT_ALL_UPDATES=false
|
||||||
|
|
||||||
|
for file in $(ls);
|
||||||
|
do
|
||||||
|
if [ -d $file ]
|
||||||
|
then
|
||||||
|
echo "Mise à jour du dépôt distant de '$file'"
|
||||||
|
cd $file
|
||||||
|
OLD_REMOTE=`$CMD | grep "(fetch)" | cut -d ' ' -f 1`
|
||||||
|
NEW_REMOTE=`echo $OLD_REMOTE | sed -En "s/$INPUT_RGX/$OUTPUT_RGX/p"`
|
||||||
|
|
||||||
|
if [[ $OLD_REMOTE == *"http"* ]]
|
||||||
|
then
|
||||||
|
if [ $ACCEPT_ALL_UPDATES = false ]
|
||||||
|
then
|
||||||
|
echo "Voulez vous remplacer le dépôt suivant :"
|
||||||
|
echo " $OLD_REMOTE"
|
||||||
|
echo "par"
|
||||||
|
echo " $NEW_REMOTE ?"
|
||||||
|
echo "('y' pour ce dépôt, 'Y' pour ce dépôt et les suivants, 'n' ou autre valeur pour annuler)"
|
||||||
|
read accept
|
||||||
|
case $accept in
|
||||||
|
y);;
|
||||||
|
Y) ACCEPT_ALL_UPDATES=true;;
|
||||||
|
*) echo "Annulation..."; exit 0;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Nouveau dépôt : $NEW_REMOTE"
|
||||||
|
|
||||||
|
git remote rm origin
|
||||||
|
git remote add $NEW_REMOTE
|
||||||
|
else
|
||||||
|
echo "Le dépôt distant n'est pas en http(s), aucune conversion n'est possible."
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd - > /dev/null
|
||||||
|
echo ''
|
||||||
|
fi
|
||||||
|
done;
|
||||||
Reference in New Issue
Block a user