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
|
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
|
remplacement par la valeur spécifiée. Par défaut, le fichier n'est pas
|
||||||
modifié si la date est déjà présente.
|
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
|
-F, --format FORMAT
|
||||||
Spécifier le format de la date à insérer dans le nom du fichier. Par
|
Spécifier le format de la date à insérer dans le nom du fichier. Par
|
||||||
défaut, FORMAT vaut 'YYMMDD-'
|
défaut, FORMAT vaut 'YYMMDD-'
|
||||||
|
@ -227,6 +235,7 @@ dmove) action=move;;
|
||||||
dcmd) action=cmd;;
|
dcmd) action=cmd;;
|
||||||
esac
|
esac
|
||||||
placeholder=
|
placeholder=
|
||||||
|
auto_force_date=1
|
||||||
force_date=
|
force_date=
|
||||||
format=
|
format=
|
||||||
autof=
|
autof=
|
||||||
|
@ -240,6 +249,7 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
-c,--cmd action=cmd \
|
-c,--cmd action=cmd \
|
||||||
--string action=string \
|
--string action=string \
|
||||||
-P:,--placeholder: placeholder= \
|
-P:,--placeholder: placeholder= \
|
||||||
|
--no-auto-force-date auto_force_date= \
|
||||||
-@:,--force-date: force_date= \
|
-@:,--force-date: force_date= \
|
||||||
-F:,--format: format= \
|
-F:,--format: format= \
|
||||||
-s,--short '$format=YYMMDD; autof=1' \
|
-s,--short '$format=YYMMDD; autof=1' \
|
||||||
|
@ -247,6 +257,25 @@ parse_opts "${PRETTYOPTS[@]}" \
|
||||||
--autof autof=1 \
|
--autof autof=1 \
|
||||||
@ args -- "$@" && set -- "${args[@]}" || die "$args"
|
@ 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 "$create" ] || create=file
|
||||||
[ -n "$placeholder" ] || placeholder="~~"
|
[ -n "$placeholder" ] || placeholder="~~"
|
||||||
[ -n "$force_date" ] && setx force_date=parse_date "$force_date"
|
[ -n "$force_date" ] && setx force_date=parse_date "$force_date"
|
||||||
|
|
Loading…
Reference in New Issue