May 17, 2017 12:46:47 PM Jon Harper avatar   565    

Synchronisation des dépôts GitHub

Un shell script lutece.sh est disponible pour faciliter la synchronisation des dépôts GIT de GitHub vers le poste de travail. La commande de synchronisation est :

lutece.sh sync

Le script redescendra tous les nouveaux dépôts de lutece-platform et lutece-secteur-public et synchronisera les dépôts existants.

Pré-requis

Linux

Vous devez avoir les applications suivantes :

  • cURL
  • git
  • le script lutece.sh

Windows

Vous devez avoir les applications suivantes :

  • git bash
  • le script lutece.sh

Installation

Debian/Ubuntu

Vous pouvez installer les logiciels nécessaires avec la commande suivante en root :

root# apt-get install curl git

Centos/Fedora/Red Hat

Vous pouvez installer les logiciels nécessaires avec la commande suivante en root :

root# yum install curl git

ou avec dnf :

root# dnf install curl git

Windows

Le logiciel msysgit apporte une interface graphique pour GIT ainsi que Git Bash. Vous pouvez télécharger directement le logiciel avec ce lien direct : https://github.com/msysgit/msysgit/releases/download/Git-1.9.5-preview20150319/Git-1.9.5-preview20150319.exe ou bien télécharger la dernière version sur celui-ci : https://msysgit.github.io/

Il est important de cocher la case permettant de lancer les scripts .sh avec git bash.

Obtenir lutece.sh

Vous devez télécharger lutece.sh sur github à l'adresse suivante : https://raw.githubusercontent.com/lutece-platform/tools-git-scripts/master/lutece.sh

Linux

Vous pouvez taper ces commandes afin d'utiliser le script :

$ wget "https://raw.githubusercontent.com/lutece-platform/tools-git-scripts/master/lutece.sh" -O "${HOME}/lutece.sh"
$ chmod +x "${HOME}/lutece.sh"

Proxy ou serveur mandataire

Pour configurer un serveur mandataire sous linux ou sous windows (git bash), vous pouvez ajouter ces lignes au fichier .bashrc qui se trouve dans votre dossier $HOME :

export HTTP_PROXY="http://utilisateur:mot_de_passe@mon.proxy:3128/"
export HTTPS=PROXY="$HTTP_PROXY"
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTP_PROXY"

Petite explication :

  • http: - le protocole utiliser par votre serveur mandataire,
  • utilisateur - l'identifiant pour s'authentifier sur le serveur mandataire (facultatif),
  • mot_de_passe - le mot de passe lié à votre identifiant (facultatif),
  • mon.proxy - l'adresse IP ou l'hôte du serveur mandataire,
  • 3128 - le port sur lequel votre serveur mandataire attend les requêtes

Linux

Sous linux, il existe déjà le script .bashrc dans votre home (vi ~/.bashrc), ajoutez donc ces lignes à la fin du fichier.

Windows

Il peut être nécessaire de créer une variable d'environnement pour le HOME sous git bash, pour cela il faut :

  • appuyez sur les touches "windows" + "pause" ,
  • dans la fenêtre qui s'ouvre, sélectionnez "paramètres avancés",
  • cliquez sur le bouton "variables d'environnements",,
  • enfin ajoutez la variable HOME (en capitales) et en valeur vous pouvez mettre, par exemple, C:\Users\Utilisateur\ .

Pour que curl fonctionne correctement, il est nécessaire avec les version actuelles de git bash (2016-04-26, cf https://github.com/curl/curl/issues/573) d'ajouter la ligne suivante au fichier .bashrc:

alias curl='/usr/bin/curl.exe'

Cela résout le problème où le script lutece.sh ne fait plus rien après avoir demandé l'utilisateur github.

Utiliser le script

Dans un terminal, vous pouvez synchroniser les dépôts github avec la commande : lutece.sh sync

Utilisation avancée

Le script lutece.sh peut prendre différents paramètres en fonction de ce qu'on veut faire. Il est possible de connaitre tous les paramètres en lançant le script sans paramètre : lutece.sh

Voici quelques exemples d'utilisations :

  • en utilisant une clef SSH : lutece.sh sync -t ssh
  • sans questionnement : lutece.sh sync -u "Jean Martin" -e jean.martin@exemple.com
  • en spécifiant un chemin spécifique de synchronisation : lutece.sh sync chemin/vers_mon_dossier_lutece/git
  • avec une clef SSH, sans questionnement dans un répertoire spécifique : lutece.sh sync -t ssh -e jean.martin@exemple.com -u "Jean Martin" lutece/git
  • modifier mon email (pour les commit) : lutece.sh config -e martin.jean@exemple.com

Actuces

Linux

Vous pouvez créer un alias pour lancer plus rapidement votre commande. Supposons que votre commande est :

lutece.sh -t ssh sync lutece/git

Vous devez ajouter au fichier .bashrc, cette ligne :

alias lutece="${HOME}/lutece.sh sync -t ssh lutece/git"

Puis relancer le terminal ou taper la commande : source ~/.bashrc

Windows

Vous pouvez créer un raccourci sur le bureau qui vous lancera votre commande. Supposons que le script lutece.sh se trouve dans : C:\Users\Moi\lutece.sh".

  • Créer un raccourci lutece.sh sur le bureau (clic droit sur le bureau : "nouveau" => "raccourci")
  • nommer le comme vous voulez
  • dans la "ligne de commande" écrivez : "C:\Users\Moi\lutece.sh" "C:\Users\Moi\Projects\lutece\git" Il vous reste plus qu'à faire des doubles clics pour mettre à jour vos dépôts.