dumpcsv: ajouter l'option --hname

This commit is contained in:
Jephte CLAIN 2016-03-01 07:05:51 +04:00
parent 903d500c14
commit d6540ac596
1 changed files with 21 additions and 9 deletions

View File

@ -1768,24 +1768,28 @@ Afficher les champs spécifiés pour traitement par le shell
-s, --skip-fields SKIPFIELDS
Exclure les champs spécifiés. SKIPFIELDS est une liste de champs séparés par
des virgules.
-h, --dump-headers
Inclure les en-têtes dans la sortie. Elles sont traitées exactement comme
une ligne de données.
--hname HNAME
Spécifier le nom à utiliser pour afficher les en-têtes avec l'option -h
-n, --name NAME
Spécifier le nom pour les options -f, -a, etc.
Spécifier le nom à utiliser pour les options -f, -a, -b
-f, --function
Afficher les champs comme l'appel d'une fonction, e.g:
dump value00 value01...
dump value10 value11...
C'est la méthode d'affichage par défaut. L'option -n permet de spécifier le
nom de la fonction, qui vaut 'dump' par défaut
nom de la fonction, qui vaut 'dump' par défaut. Avec -h, le nom par défaut
est 'dumph'
-a, --array
Afficher les champs comme les valeurs d'un tableau, e.g:
values=(value00 value01...)
values=(value10 value11...)
L'option -n permet de spécifier le nom du tableau, qui vaut 'values' par
défaut
défaut. Avec -h, le nom par défaut est 'names'
-b, --array-function
Afficher les champs comme l'initialisation des valeurs d'un tableau suivi de
l'appel d'une fonction, e.g:
@ -1794,12 +1798,13 @@ Afficher les champs spécifiés pour traitement par le shell
values=(value10 value11...)
dump
Le nom du tableau est fixé à 'values'. L'option -n permet de spécifier le
nom de la fonction, qui vaut 'dump' par défaut"
nom de la fonction, qui vaut 'dump' par défaut. Avec -h le nom par défaut
est 'dumph'"
function ldumpcsv() {
eval "$(utools_local)"
local skip= parse_headers=1 keepf skipf show_headers
local name dump=function
local dump=function name hname
parse_opts "${PRETTYOPTS[@]}" \
-S:,--skip:,--skip-lines:,--skiplines: skip= \
-H,--parse-headers parse_headers=1 \
@ -1808,6 +1813,7 @@ function ldumpcsv() {
-s:,--skip:,--skip-fields:,--skipfields: skipf= \
-h,--dump-headers show_headers=1 \
-n:,--name: name= \
--hname: hname= \
-f,--function dump=function \
-a,--array dump=array \
-b,--array-function dump=array-function \
@ -1822,6 +1828,12 @@ function ldumpcsv() {
else array_add args -n
fi
if [ -z "$hname" ]; then
case "$dump" in
function|array-function) hname=dumph;;
array) hname=names;;
esac
fi
if [ -z "$name" ]; then
case "$dump" in
function|array-function) name=dump;;
@ -1832,8 +1844,8 @@ function ldumpcsv() {
local -a fields
fields=("$@")
awkcsv "${args[@]}" -v show_headers:int="$show_headers" -v name="$name" -v dump="$dump" -v fields[@] -e '
function dump_values(values) {
awkcsv "${args[@]}" -v show_headers:int="$show_headers" -v hname="$hname" -v name="$name" -v dump="$dump" -v fields[@] -e '
function dump_values(name, values) {
if (dump == "function") {
print qarr(values, name)
} else if (dump == "array") {
@ -1850,7 +1862,7 @@ function dump_values(values) {
fields_count = array_len(fields)
}
if (show_headers) {
dump_values(fields)
dump_values(hname, fields)
}
}
array_new(values)
@ -1859,7 +1871,7 @@ function dump_values(values) {
values[i] = get(fields[i])
i++
}
dump_values(values)
dump_values(name, values)
}' -a ''
}