From 57dac047994fad1a5de7947c741f1e07f4b8e474 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Thu, 16 Apr 2015 13:53:09 +0400 Subject: [PATCH] =?UTF-8?q?support=20de=20xempty=20explicite,=20et=20de=20?= =?UTF-8?q?la=20possibilit=C3=A9=20de=20d=C3=A9sactiver=20ce=20traitement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/ulib/ldif | 51 ++++++++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/lib/ulib/ldif b/lib/ulib/ldif index 743999e..d122438 100644 --- a/lib/ulib/ldif +++ b/lib/ulib/ldif @@ -1033,22 +1033,25 @@ dec, decode [ATTRS...] s'ils sont encodés en base64) enc, encode [ATTRS...] Encoder en base64 les valeurs des attributs mentionnés. -k, keepattr ATTRS... - Garder uniquement les lignes des attributs mentionnés. Ensuite, supprimer - les objets ayant uniquement la ligne dn: (en d'autres termes, keepattr sans - argument supprime *tout* le flux) -kv, keepval ATTR PATTERNS... +xe, xempty, excludeempty + Supprimer les objets sans attributs, qui ont uniquement une ligne dn: +k, keepattr [--no-xempty] ATTRS... + Garder uniquement les attributs mentionnés, puis supprimer les objets sans + attributs avec xempty, sauf si l'option --no-xempty est spécifiée (en + d'autres termes, keepattr sans argument supprime *tout* le flux) +kv, keepval [--no-xempty] ATTR PATTERNS... Pour l'attribut attr, garder uniquement les lignes pour lesquelles les valeurs correspondent aux expressions régulières. Les autres attributs ne - sont pas modifiés. Ensuite, supprimer les objets ayant uniquement la ligne - dn: -x, excludeattr ATTRS... + sont pas modifiés. Ensuite, supprimer les objets sans attributs avec xempty, + sauf si l'option --no-xempty est spécifiée +x, excludeattr [--no-xempty] ATTRS... Supprimer les lignes des attributs mentionnés. Ensuite, supprimer les objets - ayant uniquement la ligne dn: -xv, excludeval ATTR PATTERNS... + sans attributs avec xempty, sauf si l'option --no-xempty est spécifiée +xv, excludeval [--no-xempty] ATTR PATTERNS... Pour l'attribut attr, supprimer les lignes pour lesquelles les valeurs correspondent aux expressions régulières. Les autres attributs ne sont pas - modifiés. Ensuite, supprimer les objets ayant uniquement la ligne dn: + modifiés. Ensuite, supprimer les objets sans attributs avec xempty, sauf si + l'option --no-xempty est spécifiée. kve, keepvalentry ATTR PATTERNS... Pour l'attribut attr, vérifier si *au moins une* valeur correspond à l'une des expressions régulières. Si c'est le cas, garder toute l'entrée, sinon @@ -1301,23 +1304,24 @@ function get_transform_cmd() { ;; dec|decode) cmdparts=(tl_decode "$(def_match_attr "$@")");; enc|encode) cmdparts=(tl_encode "$(def_match_attr "$@")");; + xe|xempty|excludeempty) cmdparts=(ensure_complete_objects);; k|keep|keepattr) + [ "$1" == --no-xempty ] && shift || xempty=1 cmdparts=(tl_keepattr "$(def_match_attr dn "$@")") - xempty=1 ;; K|kv|keepval) + [ "$1" == --no-xempty ] && shift || xempty=1 local match_attr="$(def_match_attr "$1")"; shift cmdparts=(tl_keepval "$match_attr" "$(def_match_value "$@")") - xempty=1 ;; x|exclude|excludeattr) + [ "$1" == --no-xempty ] && shift || xempty=1 cmdparts=(tl_excludeattr "$(def_match_attr "$@")") - xempty=1 ;; dv|delval|X|xv|excludeval) + [ "$1" == --no-xempty ] && shift || xempty=1 local match_attr="$(def_match_attr "$1")"; shift cmdparts=(tl_excludeval "$match_attr" "$(def_match_value "$@")") - xempty=1 ;; xve|excludevalentry) local match_attr="$(def_match_attr "$1")"; shift @@ -1332,21 +1336,10 @@ function get_transform_cmd() { sv|setval|rv|replval) local match_attr="$(def_match_attr "$1")"; shift cmdparts=(tl_replval "$match_attr" "$@") - xempty=1 ;; - av|addval) - cmdparts=(tl_addval "$@") - xempty=1 - ;; - fv|defval) - cmdparts=(tl_defval "$@") - xempty=1 - ;; - ev|ensureval) - cmdparts=(tl_ensureval "$@") - xempty=1 - ;; - xe|xempty|excludeempty) cmdparts=(ensure_complete_objects);; + av|addval) cmdparts=(tl_addval "$@");; + fv|defval) cmdparts=(tl_defval "$@");; + ev|ensureval) cmdparts=(tl_ensureval "$@");; sed|awk|grep|sort) cmdparts=(LANG=C "$cmd" "$@");; csed|cawk|cgrep|csort) cmdparts=(LANG=C "${cmd#c}" "$@");; lsed|lawk|lgrep|lsort) cmdparts=("${cmd#l}" "$@");;