le fichier est spécifié avec une option

This commit is contained in:
Jephté Clain 2014-11-06 07:16:36 +04:00
parent 17c0490ddd
commit 62aed20aee
1 changed files with 21 additions and 11 deletions

32
fconv
View File

@ -7,7 +7,7 @@ function display_help() {
uecho "$scriptname: convertir un fichier ou les fichiers d'un répertoire
USAGE
$scriptname [options] <file|dir> [cmds...]
$scriptname [options] [cmds...]
Une ou plusieurs commandes peuvent être spécifiées, séparées //
La commande par défaut est 'lf'
@ -21,6 +21,10 @@ OPTIONS
-r, --reverse
Pour la commande conv, inverser src_enc et dest_enc, qui doivent être
tous les deux spécifiés.
-f, --file FILE
Spécifier le fichier ou le répertoire concerné par la conversion. Par
défaut, convertir l'entrée standard. Les options -d et --dir sont aussi
reconnus et sont des aliases de convenance
COMMANDES
c, conv dest_enc [src_enc]
@ -28,9 +32,9 @@ COMMANDES
dest_enc est l'encoding destination. Il doit être spécifié.
src_enc est l'encoding source. S'il n'est pas spécifié ou vaut 'detect',
il est autodétecté.
utf8 [src_enc]
u, utf8 [src_enc]
Equivalent à conv utf8 src_enc
latin1 [src_enc]
l, latin1 [src_enc]
Equivalent à conv latin1 src_enc
lf
crlf
@ -38,7 +42,7 @@ COMMANDES
Convertir respectivement les caractères de fin de ligne en LF, CR/LF ou CR
lc, latin1compat
Transformer certains caratères UTF-8 en équivalents qui existent en Latin1
n, noaccents
na, noaccents
Transformer les caractères accentués en caractères non accentués"
}
@ -100,8 +104,8 @@ function parse_cmd() {
local cmd="$1"; shift
local -a args
case "$cmd" in
utf8) parse_cmd conv utf8 "$@";;
latin1) parse_cmd conv latin1 "$@";;
utf8|u) parse_cmd conv utf8 "$@";;
latin1|l) parse_cmd conv latin1 "$@";;
conv|c)
local to="$CONV_TO" from="$CONV_FROM"
[ -n "$to" ] || to="$1"; shift
@ -132,7 +136,7 @@ function parse_cmd() {
crlf) echo _nl2crlf;;
cr) echo _nl2cr;;
latin1compat|lc) echo _latin1compat;;
noaccents|noa|n|fixchars) echo _noaccents;;
noaccents|na|fixchars|fc) echo _noaccents;;
*)
echo "$cmd: commande invalide"
return 1
@ -153,17 +157,21 @@ function ffconv() {
eend
}
OPTIMIZE_CONV=1
REVERSE_CONV=
CONV_FROM=
CONV_TO=
OPTIMIZE_CONV=1
REVERSE_CONV=
FILE=
show_cmd=
parse_opts + "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \
-N,--detect-always OPTIMIZE_CONV= \
-r,--reverse REVERSE_CONV=1 \
-f:,--file:,-d:,--dir: FILE= \
--show-cmd show_cmd=1 \
@ args -- "$@" && set -- "${args[@]}" || die "$args"
FILE="${1:--}"; shift
[ -n "$FILE" ] || FILE=-
[ "$FILE" == - ] && FILE=/dev/stdin
if [ "$FILE" != /dev/stdin ]; then
[ -e "$FILE" ] || die "$FILE: fichier introuvable"
@ -199,7 +207,9 @@ while [ $# -gt 0 ]; do
fi
done
if [ "$FILE" == /dev/stdin ]; then
if [ -n "$show_cmd" ]; then
echo "$CMD"
elif [ "$FILE" == /dev/stdin ]; then
eval "$CMD"
elif [ -f "$FILE" ]; then
ffconv