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() {
|
function pff_get_local_files() {
|
||||||
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
||||||
# projet pff $1
|
# projet pff $1
|
||||||
local pffdir="$1"
|
local pffdir="$1" files file dirs dir isald
|
||||||
find "$pffdir/pff/Base" -type f | sed "s|^$pffdir/pff/Base/||" | grep -v '__pv-.*__$'
|
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() {
|
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
|
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
|
.pffdir à l'intérieur. Lors du switch le répertoire correspondant est
|
||||||
lié s'il existe dans un profil.
|
lié s'il existe dans un profil.
|
||||||
IMPORTANT: ne pas mettre autre chose dans le répertoire, ce n'est pas
|
NB: s'il existe d'autres fichiers dans le répertoire, ils sont ignorés.
|
||||||
supporté pour le moment. Cela veut dire que chaque profil doit contenir
|
Cela permet d'avoir un ensemble de fichiers par défaut, mais les liens
|
||||||
le répertoire complet, sans pouvoir hériter de fichiers par défaut
|
symboliques doivent être faits manuellement.
|
||||||
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
|
||||||
|
@ -436,8 +435,22 @@ function get_first_profile() {
|
||||||
function get_local_files() {
|
function get_local_files() {
|
||||||
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
# afficher tous les fichiers locaux exprimés relativement au répertoire du
|
||||||
# projet pff $1
|
# projet pff $1
|
||||||
local pffdir="$1"
|
# pour les répertoires liés, ne lister que le fichier .pffdir
|
||||||
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 get_rfile() {
|
function get_rfile() {
|
||||||
|
|
Loading…
Reference in New Issue