fndate: améliorer l'ergonomie de l'option -@
This commit is contained in:
parent
5b0f13dde1
commit
8ce9821095
29
fndate
29
fndate
|
@ -63,6 +63,14 @@ OPTIONS
|
|||
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:
|
||||
$scriptname -@ d/m/y file
|
||||
$scriptname d/m/y file
|
||||
$scriptname file @d/m/y
|
||||
-F, --format FORMAT
|
||||
Spécifier le format de la date à insérer dans le nom du fichier. Par
|
||||
défaut, FORMAT vaut 'YYMMDD-'
|
||||
|
@ -227,6 +235,7 @@ dmove) action=move;;
|
|||
dcmd) action=cmd;;
|
||||
esac
|
||||
placeholder=
|
||||
auto_force_date=1
|
||||
force_date=
|
||||
format=
|
||||
autof=
|
||||
|
@ -240,6 +249,7 @@ parse_opts "${PRETTYOPTS[@]}" \
|
|||
-c,--cmd action=cmd \
|
||||
--string action=string \
|
||||
-P:,--placeholder: placeholder= \
|
||||
--no-auto-force-date auto_force_date= \
|
||||
-@:,--force-date: force_date= \
|
||||
-F:,--format: format= \
|
||||
-s,--short '$format=YYMMDD; autof=1' \
|
||||
|
@ -247,6 +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
|
||||
# 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
|
||||
force_date="$l"
|
||||
set -- "${@:1:$(($# - 1))}"
|
||||
elif [[ "$l" == @* ]] && [ -z "${l2//[0-9\/]}" -a ! -e "$l2" ]; then
|
||||
force_date="$l2"
|
||||
set -- "${@:1:$(($# - 1))}"
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$create" ] || create=file
|
||||
[ -n "$placeholder" ] || placeholder="~~"
|
||||
[ -n "$force_date" ] && setx force_date=parse_date "$force_date"
|
||||
|
|
Loading…
Reference in New Issue