diff --git a/lib/ulib/pff b/lib/ulib/pff index 9a71572..078e2e8 100644 --- a/lib/ulib/pff +++ b/lib/ulib/pff @@ -253,7 +253,18 @@ function pff_select_profile() { setx -a lfiles=pff_get_local_files "$pffdir" for lfile in "${lfiles[@]}"; do src="$pffdir/pff/Current/$lfile" - if [ -f "$pffdir/pff/$profile/$lfile" ]; then + if [[ "$lfile" == */.pffdir ]]; then + # répertoires entiers + lfile="${lfile%/.pffdir}" + src="${src%/.pffdir}" + if [ -d "$pffdir/pff/$profile/$lfile" ]; then + dest="$profile/$lfile" + elif [ "$profile" != Common -a -d "$pffdir/pff/Common/$lfile" ]; then + dest="Common/$lfile" + else + dest="Base/$lfile" + fi + elif [ -f "$pffdir/pff/$profile/$lfile" ]; then dest="$profile/$lfile" elif [ "$profile" != Common -a -f "$pffdir/pff/Common/$lfile" ]; then dest="Common/$lfile" diff --git a/pff b/pff index 1294e4b..8d57c31 100755 --- a/pff +++ b/pff @@ -355,6 +355,21 @@ function flexists() { [ -e "$1" -o -L "$1" ] } +function multiups() { + # afficher un chemin vers le haut e.g ../../.. avec autant d'éléments que + # les répertoires du chemin relatif $1. + # méthode: commencer avec la valeur de départ $2 et préfixer avec autant de + # ../ que nécessaire. puis afficher le résultat. + local tmp="$1" link="$2" + setx tmp=dirname -- "$tmp" + while [ "$tmp" != . ]; do + [ -n "$link" ] && link="/$link" + link="..$link" + setx tmp=dirname -- "$tmp" + done + echo "$link" +} + function find_pffdir() { # trouver le répertoire du projet pff à partir du répertoire $2(=.) et # mettre le chemin absolu dans la variable $1(=pffdir) @@ -425,21 +440,6 @@ function get_local_files() { find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '/__pv-[^/_]*__[^/]*$' } -function multiups() { - # afficher un chemin vers le haut e.g ../../.. avec autant d'éléments que - # les répertoires du chemin relatif $1. - # méthode: commencer avec la valeur de départ $2 et préfixer avec autant de - # ../ que nécessaire. puis afficher le résultat. - local tmp="$1" link="$2" - setx tmp=dirname -- "$tmp" - while [ "$tmp" != . ]; do - [ -n "$link" ] && link="/$link" - link="..$link" - setx tmp=dirname -- "$tmp" - done - echo "$link" -} - function get_rfile() { # obtenir le chemin relatif du fichier $1 exprimé par rapport au répertoire # du projet pff $2. Si c'est un fichier d'un répertoire de profil,