Lors de l’initialisation d’un projet web, il est presque systématique de mettre en place un gestionnaire de versions. Nous allons voir comment ajouter un projet avec Git sur BitBucket en script Shell.
L’idée, en bon gros flemmard que nous sommes, est d’éviter de faire la configuration Git / BitBucket du projet à la main à chaque début de projet.
A ce propos, j’ai récemment rajouté cette fonctionnalité à mon script d’automatisation de l’installation de projets WordPress avec WP-Cli. Pour ceux que cela intéresse, je vous invite à lire l’article de Maxime sur WP-Spread qui est une excellente entrée en matière.
On va commencer par demander à l’utilisateur si il veut versionner le projet.
# Versionner le projet, ou pas ?
read -p "Versionner le projet sur Bitbucket (y/n) ? " yn
case "$yn" in
# Je veux du versionnage
y )
echo "Super";;
# J'en veux pas
n )
echo "Tans pis !";;
esac
Maintenant que l’on sait qu’il veut versionner son projet on va lui demander quelques informations essentielles : login, pass, nom du dépôt.
# On récupère les infos nécessaire
read -p "Login ? " login
read -p "Password ? " pass
read -p "Nom du dépôt ? " depot
On va pouvoir attaquer le plus important : créer le dépôt sur BitBucket, initialiser Git, ajout des fichiers, commit et push.
# On supprime le dossier git présent par précaution
rm -f -r .git
#Créer le dépôt sur Bitbucket
curl --user $login:$pass https://api.bitbucket.org/1.0/repositories/ --data name=$depot --data is_private='true'
# Init git et lien avec le dépôt
git init
git remote add origin git@bitbucket.org:$login/$depot.git
# Ajouter les fichiers untracked, commit et push toussa
git add -A
git commit -m 'first commit'
git push -u origin master
En ajoutant un cd /mondossier en début de script vous devriez avoir quelque chose de fonctionnel. Un exemple complet :
#!/bin/bash
# Versionner le projet, ou pas ?
read -p "Versionner le projet sur Bitbucket (y/n) ? " yn
case "$yn" in
# Je veux du versionnage
y )
# On se positionne dans le dossier
cd ./monprojet
# On récupère les infos nécessaire
read -p "Login ? " login
read -p "Password ? " pass
read -p "Nom du dépôt ? " depot
# On supprime le dossier git présent par précaution
rm -f -r .git
#Créer le dépôt sur Bitbucket
curl --user $login:$pass https://api.bitbucket.org/1.0/repositories/ --data name=$depot --data is_private='true'
# Init git et lien avec le dépôt
git init
git remote add origin git@bitbucket.org:$login/$depot.git
# Ajouter les fichiers untracked, commit et push toussa
git add -A
git commit -m 'first commit'
git push -u origin master
echo "OK ! adresse du dépôt est : https://bitbucket.org/$login/$depot";;
# J'en veux pas
n )
echo "Tans pis !";;
esac