ufile: support des pattern regex

This commit is contained in:
Jephté Clain 2017-10-17 22:45:47 +04:00
parent 6130c2ff7f
commit 7bd0a95b3e
1 changed files with 11 additions and 3 deletions

14
ufile
View File

@ -12,7 +12,11 @@ Dans ce fichier, le tableau RULES contient des règles qui sont chacune de la
forme pattern:destdir[:renamef]
- pattern est au format glob et identifie les fichiers auxquels s'applique la
règle
règle, sauf si la chaine commence par / auquel cas il s'agit d'une expression
régulière reconnue par awk. Par exemple, les deux patterns suivants sont
équivalents:
[ab]cd*.pdf
/[ab]cd.*\\\\.pdf\$
- destdir est le répertoire de destination dans lequel classer le fichier
- renamef est une fonction qui permet de supporter le renommage d'un fichier
lors de son classement. Sa signature est 'renamef filename pf destdir' où
@ -107,7 +111,7 @@ function __set_dest() {
setx dest=abspath "$dest"
else
__check_destdir "$destdir" "$rule" || return 1
setx dest=joinp "$destdir" "$filename"
setx dest=joinp "$destdir" "$dest"
fi
upvar dest "$dest"
return 0
@ -223,7 +227,11 @@ for file in "${files[@]}"; do
odestdir="$HOME"
fi
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
if [ "${pattern#/}" != "$pattern" ]; then
awk -v filename="$filename" -v pattern="${pattern#/}" 'BEGIN { exit(filename ~ pattern? 0: 1) }' || continue
else
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
fi
unset dest
interaction=--DEFAULT--