Initial commit.

This commit is contained in:
Thierry Florian
2020-02-14 15:46:34 +01:00
commit 8bb8e71998

45
git-switch-http-to-ssh.sh Normal file
View 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;