fndate: maj doc et améliorations ergonomiques
This commit is contained in:
parent
d5f4ae25c0
commit
c25160c63b
38
fndate
38
fndate
|
@ -60,14 +60,14 @@ OPTIONS
|
|||
PLACEHOLDER vaut ~~. Si le nom spécifié ne contient pas le PLACEHOLDER,
|
||||
il est placé au début.
|
||||
-@, --force-date DATE
|
||||
Dans le nom spécifié, si la date est déjà présente, forcer son
|
||||
remplacement par la valeur spécifiée. Par défaut, le fichier n'est pas
|
||||
modifié si la date est déjà présente.
|
||||
S'il y a au moins 2 arguments et si le premier ou le dernier argument
|
||||
ressemblent à une date (ie. d/m[/y] ou @d[/m[/y]]) et qu'aucun fichier
|
||||
de ce nom n'existe dans le répertoire courant, activer automatiquement
|
||||
cette option, sauf si l'option --no-auto-force-date est spécifié aussi.
|
||||
Les commandes suivantes sont équivalentes:
|
||||
Si une date du format attendu est déjà présente dans le nom du fichier,
|
||||
forcer son remplacement par la valeur spécifiée. Par défaut, le fichier
|
||||
n'est pas modifié si la date est déjà présente.
|
||||
Si le premier ou le dernier argument de ce script ressemblent à une date
|
||||
(ie. d/m[/y] ou @d[/m[/y]]) et qu'aucun fichier de ce nom n'existe dans
|
||||
le répertoire courant, activer automatiquement cette option, sauf si
|
||||
l'option --no-auto-force-date est spécifiée aussi. Ainsi, les commandes
|
||||
suivantes sont équivalentes:
|
||||
$scriptname -@ d/m/y file
|
||||
$scriptname d/m/y file
|
||||
$scriptname file @d/m/y
|
||||
|
@ -257,23 +257,25 @@ parse_opts "${PRETTYOPTS[@]}" \
|
|||
--autof autof=1 \
|
||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
||||
|
||||
if [ $# -gt 1 -a -z "$force_date" -a -n "$auto_force_date" ]; then
|
||||
if [ -z "$force_date" -a -n "$auto_force_date" ]; then
|
||||
# si le premier ou le dernier argument ressemblent à une date
|
||||
f="$1"; f2="${f#@}"
|
||||
l="${@:$#}"; l2="${l#@}"
|
||||
if [[ "$f" == */* ]] && [ -z "${f//[0-9\/]}" -a ! -e "$f" ]; then
|
||||
force_date="$f"
|
||||
shift
|
||||
elif [[ "$f" == @* ]] && [ -z "${f2//[0-9\/]}" -a ! -e "$f2" ]; then
|
||||
force_date="$f2"
|
||||
shift
|
||||
elif [[ "$l" == */* ]] && [ -z "${l//[0-9\/]}" -a ! -e "$l" ]; then
|
||||
elif [ $# -gt 1 ]; then
|
||||
l="${@:$#}"; l2="${l#@}"
|
||||
if [[ "$l" == */* ]] && [ -z "${l//[0-9\/]}" -a ! -e "$l" ]; then
|
||||
force_date="$l"
|
||||
set -- "${@:1:$(($# - 1))}"
|
||||
elif [[ "$l" == @* ]] && [ -z "${l2//[0-9\/]}" -a ! -e "$l2" ]; then
|
||||
force_date="$l2"
|
||||
set -- "${@:1:$(($# - 1))}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$create" ] || create=file
|
||||
|
@ -358,14 +360,24 @@ elif [ "$action" == create ]; then
|
|||
setx dir=dirname -- "$src"
|
||||
setx srcname=basename -- "$src"
|
||||
if [ -e "$src" ]; then
|
||||
estep "Renommage de $(ppath "$src")"
|
||||
setx destname=replace_ph "$srcname" "$force_date"
|
||||
setx dest=abspath "$dir/$destname"
|
||||
[ "$src" != "$dest" ] || ewarn "La source et la destination sont identiques"
|
||||
confirm_do=1
|
||||
if [ "$src" == "$dest" ]; then
|
||||
if [ -n "$force_date" ]; then
|
||||
ewarn "La source et la destination sont identiques"
|
||||
else
|
||||
estepi "$(ppath "$src"): aucun renommage nécessaire"
|
||||
confirm_do=
|
||||
fi
|
||||
fi
|
||||
if [ -n "$confirm_do" ]; then
|
||||
estep "Renommage de $(ppath "$src")"
|
||||
read_value "Veuillez confirmer le nom" destname "$destname"
|
||||
|
||||
setx dest=abspath "$dir/$destname"
|
||||
[ "$src" != "$dest" ] && mv -i "$src" "$dir/$destname"
|
||||
fi
|
||||
else
|
||||
setx destname=replace_ph "$srcname" "$force_date"
|
||||
setx dest=abspath "$dir/$destname"
|
||||
|
|
Loading…
Reference in New Issue