pff: les répertoires liés peuvent contenir des fichiers
This commit is contained in:
parent
5d6c6b4053
commit
8570d12ce6
17
lib/ulib/pff
17
lib/ulib/pff
|
@ -117,8 +117,21 @@ function pff_get_first_profile() {
|
|||
function pff_get_local_files() {
|
||||
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
||||
# projet pff $1
|
||||
local pffdir="$1"
|
||||
find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '__pv-.*__$'
|
||||
local pffdir="$1" files file dirs dir isald
|
||||
files="$(find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '/__pv-[^/_]*__[^/]*$')"
|
||||
dirs="$(echo "$files" | grep '/\.pffdir$' | sed 's/\.pffdir$//')"
|
||||
setx -a files=echo "$files"
|
||||
setx -a dirs=echo "$dirs"
|
||||
for file in "${files[@]}"; do
|
||||
isald=
|
||||
for dir in "${dirs[@]}"; do
|
||||
if [ "${file#$dir}" != "$file" ]; then
|
||||
isald=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ -z "$isald" -o "$file" == "${dir}.pffdir" ] && echo "$file"
|
||||
done
|
||||
}
|
||||
|
||||
function pff_get_rfile() {
|
||||
|
|
25
pff
25
pff
|
@ -204,10 +204,9 @@ pff:
|
|||
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
|
||||
NB: s'il existe d'autres fichiers dans le répertoire, ils sont ignorés.
|
||||
Cela permet d'avoir un ensemble de fichiers par défaut, mais les liens
|
||||
symboliques doivent être faits manuellement.
|
||||
|
||||
COMMANDES / OPTIONS
|
||||
Les arguments du script dépendent de la commande utilisée. Les commandes
|
||||
|
@ -436,8 +435,22 @@ function get_first_profile() {
|
|||
function get_local_files() {
|
||||
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
||||
# projet pff $1
|
||||
local pffdir="$1"
|
||||
find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '/__pv-[^/_]*__[^/]*$'
|
||||
# pour les répertoires liés, ne lister que le fichier .pffdir
|
||||
local pffdir="$1" files file dirs dir isald
|
||||
files="$(find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '/__pv-[^/_]*__[^/]*$')"
|
||||
dirs="$(echo "$files" | grep '/\.pffdir$' | sed 's/\.pffdir$//')"
|
||||
setx -a files=echo "$files"
|
||||
setx -a dirs=echo "$dirs"
|
||||
for file in "${files[@]}"; do
|
||||
isald=
|
||||
for dir in "${dirs[@]}"; do
|
||||
if [ "${file#$dir}" != "$file" ]; then
|
||||
isald=1
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ -z "$isald" -o "$file" == "${dir}.pffdir" ] && echo "$file"
|
||||
done
|
||||
}
|
||||
|
||||
function get_rfile() {
|
||||
|
|
Loading…
Reference in New Issue