pff: support des répertoires liés
This commit is contained in:
parent
7d7b88a427
commit
90bda71351
45
pff
45
pff
|
@ -197,9 +197,17 @@ pff:
|
||||||
NOUPSTREAM -- indiquer qu'il n'y a pas de distribution upstream ni de
|
NOUPSTREAM -- indiquer qu'il n'y a pas de distribution upstream ni de
|
||||||
fichiers origine. pff est alors uniquement utilisé pour gérer des
|
fichiers origine. pff est alors uniquement utilisé pour gérer des
|
||||||
profils de fichier.
|
profils de fichier.
|
||||||
Pour le moment, la seule différence est que le mode des fichiers de
|
Pour le moment, la seule différence fonctionnelle est que le mode des
|
||||||
pff/Base n'est pas forcé à 0444. Ainsi, ces fichiers sont traités au
|
fichiers de pff/Base n'est pas forcé à 0444. Ainsi, ces fichiers sont
|
||||||
même titre que ceux du répertoire pff/Common
|
traités au même titre que ceux du répertoire pff/Common
|
||||||
|
Dans ce mode, on supporte aussi les liens vers des répertoires entiers:
|
||||||
|
il suffit de créer le répertoire dans pff/Base avec un unique fichier
|
||||||
|
.pffdir à l'intérieur. Lors du switch le répertoire correspondant est
|
||||||
|
lié s'il existe dans un profil.
|
||||||
|
IMPORTANT: ne pas mettre autre chose dans le répertoire, ce n'est pas
|
||||||
|
supporté pour le moment. Cela veut dire que chaque profil doit contenir
|
||||||
|
le répertoire complet, sans pouvoir hériter de fichiers par défaut
|
||||||
|
depuis pff/Base
|
||||||
|
|
||||||
COMMANDES / OPTIONS
|
COMMANDES / OPTIONS
|
||||||
Les arguments du script dépendent de la commande utilisée. Les commandes
|
Les arguments du script dépendent de la commande utilisée. Les commandes
|
||||||
|
@ -595,7 +603,18 @@ function select_profile() {
|
||||||
setx -a lfiles=get_local_files "$pffdir"
|
setx -a lfiles=get_local_files "$pffdir"
|
||||||
for lfile in "${lfiles[@]}"; do
|
for lfile in "${lfiles[@]}"; do
|
||||||
src="$pffdir/pff/Current/$lfile"
|
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"
|
dest="$profile/$lfile"
|
||||||
elif [ "$profile" != Common -a -f "$pffdir/pff/Common/$lfile" ]; then
|
elif [ "$profile" != Common -a -f "$pffdir/pff/Common/$lfile" ]; then
|
||||||
dest="Common/$lfile"
|
dest="Common/$lfile"
|
||||||
|
@ -1456,7 +1475,7 @@ function list_locals_cmd() {
|
||||||
local pffdir="$1"
|
local pffdir="$1"
|
||||||
|
|
||||||
ensure_pffdir pffdir "$pffdir"
|
ensure_pffdir pffdir "$pffdir"
|
||||||
get_local_files "$pffdir"
|
get_local_files "$pffdir" | sed 's/\/.pffdir$/\//'
|
||||||
}
|
}
|
||||||
|
|
||||||
#===========================================================
|
#===========================================================
|
||||||
|
@ -1739,7 +1758,21 @@ function infos_cmd() {
|
||||||
setx -a vlfiles=get_vlfiles "$pffdir" "$rfile" "$profile"
|
setx -a vlfiles=get_vlfiles "$pffdir" "$rfile" "$profile"
|
||||||
setx Pfile=get_pfile "$pffdir/$rfile" "$profile" "$pffdir"
|
setx Pfile=get_pfile "$pffdir/$rfile" "$profile" "$pffdir"
|
||||||
setx Cfile=get_Cfile "$pffdir/$rfile" "$pffdir"
|
setx Cfile=get_Cfile "$pffdir/$rfile" "$pffdir"
|
||||||
if [ ${#vlfiles[*]} -gt 0 ]; then
|
if [[ "$rfile" == */.pffdir ]]; then
|
||||||
|
# répertoires entiers
|
||||||
|
rfile="${rfile%.pffdir}"
|
||||||
|
Pfile="${Pfile%/.pffdir}"
|
||||||
|
Cfile="${Cfile%/.pffdir}"
|
||||||
|
if [ -d "$Pfile" ]; then
|
||||||
|
flag="${COULEUR_BLEUE}*${COULEUR_NORMALE} "
|
||||||
|
elif [ "$profile" != Common -a -d "$Cfile" ]; then
|
||||||
|
flag="$(get_color YELLOW)C${COULEUR_NORMALE} "
|
||||||
|
elif [ -z "$show_all" ]; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
flag=" "
|
||||||
|
fi
|
||||||
|
elif [ ${#vlfiles[*]} -gt 0 ]; then
|
||||||
flag="${COULEUR_ROUGE}P${COULEUR_NORMALE} "
|
flag="${COULEUR_ROUGE}P${COULEUR_NORMALE} "
|
||||||
elif [ -f "$Pfile" ]; then
|
elif [ -f "$Pfile" ]; then
|
||||||
flag="${COULEUR_BLEUE}*${COULEUR_NORMALE} "
|
flag="${COULEUR_BLEUE}*${COULEUR_NORMALE} "
|
||||||
|
|
Loading…
Reference in New Issue