#!/bin/bash -- # TODO faire la boucle pour l'option -a (faire 2 fonctions, avec ou sans -a) #QuelGit.sh . /usr/local/lib/bash/AFFICHE_MESSAGES SYNTAXE(){ TITRE "Syntaxe: $reset $(basename $0) [options]" echo echo -e "Trouve Le dépôt affecté par une commande$TURQ git$reset de ce répertoire" echo echo "Rien: un dépôt existe dans ce répertoire" echo "sinon: affiche le dépôt qui sera utilisé" echo echo "-D déboggage" echo "-a liste tous les dépôts parents" echo "-h cet affichage" } D='' a='' # Gestion des options: while getopts Dah opt do case "$opt" in D) D=debug ;; a) a=all ;; h) SYNTAXE exit 0 ;; *) echo "Option fausse:" SYNTAXE exit 1 esac done if [[ ! "$D" == debug ]] then . /usr/local/lib/bash/ANNULE_DEBUG fi # Quel est le dépot /.git/ utilisé dans ce répertoire? # 1 Existe-t-il dans ce répertoire? ls -A | egrep -q '\.git$' && exit 0 #+ echo "Pas dans: $(basename $PWD)" # 2 sinon dans l'arbre parent: myPWD="$PWD" until [[ -z "$myPWD" ]] ; do ls -1A "$myPWD" | grep -Eq '\.git$' #&& ls -Ad "${myPWD}/.git" ; Retour="$?" ; DEBUG "$Retour" # Trouvé, alors stop: if [[ "$Retour" == 0 ]] ; then DEBUG '-z "$Retour" fonctionne' ls -Ad "${myPWD}/.git" break DEBUG "break ne fonctionne pas" fi # Sinon suivant: myPWD=${myPWD%/*}; done