From 62aed20aee5308cbb60483b3b046868eb951734d Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Thu, 6 Nov 2014 07:16:36 +0400 Subject: [PATCH] =?UTF-8?q?le=20fichier=20est=20sp=C3=A9cifi=C3=A9=20avec?= =?UTF-8?q?=20une=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fconv | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/fconv b/fconv index 50a71f2..49d1bf9 100755 --- a/fconv +++ b/fconv @@ -7,7 +7,7 @@ function display_help() { uecho "$scriptname: convertir un fichier ou les fichiers d'un répertoire USAGE - $scriptname [options] [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