Intégration de la branche ldapt
This commit is contained in:
commit
d756a6c6d2
141
lib/ulib/ldif
141
lib/ulib/ldif
|
@ -505,41 +505,6 @@ END {
|
|||
function tl_ensureval() {
|
||||
local attr="$1"; shift
|
||||
local script="$(def_match_attr "$attr")
|
||||
function resetp() {
|
||||
ensure = 0
|
||||
found = 0
|
||||
}
|
||||
function get_attrvalue(line) {
|
||||
sub(/^[^:]+::?[ ]+/, \"\", line)
|
||||
return line
|
||||
}
|
||||
function add_to_found_values(value) {
|
||||
found_values[found_count] = value
|
||||
found_count++
|
||||
}
|
||||
function in_found_values(value, i) {
|
||||
for (i = 0; i < found_count; i++) {
|
||||
if (found_values[i] == value) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
function print_ensure_values() {
|
||||
for (i = 0; i < ensure_count; i++) {
|
||||
print attr \" \" ensure_values[i]
|
||||
}
|
||||
resetp()
|
||||
}
|
||||
function print_missing_values( value) {
|
||||
for (i = 0; i < ensure_count; i++) {
|
||||
value = ensure_values[i]
|
||||
if (!in_found_values(value)) {
|
||||
print attr \" \" value
|
||||
}
|
||||
}
|
||||
resetp()
|
||||
}
|
||||
BEGIN {
|
||||
resetp()
|
||||
attr = fix_attr($(quoted_awk "$attr"))
|
||||
|
@ -556,6 +521,55 @@ BEGIN {
|
|||
found_values[0] = 0
|
||||
delete found_values
|
||||
}"'
|
||||
function resetp() {
|
||||
ensure = 0
|
||||
found = 0
|
||||
}
|
||||
function get_attrvalue(line) {
|
||||
sub(/^[^:]+::?[ ]+/, "", line)
|
||||
return line
|
||||
}
|
||||
function add_to_found_values(value) {
|
||||
found_values[found_count] = value
|
||||
found_count++
|
||||
}
|
||||
function in_found_values(value, i, found_value) {
|
||||
if (value ~ /^{}/) {
|
||||
sub(/^{}/, "", value)
|
||||
for (i = 0; i < found_count; i++) {
|
||||
found_value = found_values[i]
|
||||
sub(/^{[0-9]+}/, "", found_value)
|
||||
if (found_value == value) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < found_count; i++) {
|
||||
if (found_values[i] == value) {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0
|
||||
}
|
||||
function print_ensure_values() {
|
||||
for (i = 0; i < ensure_count; i++) {
|
||||
value = ensure_values[i]
|
||||
sub(/^{}/, "", value)
|
||||
print attr " " value
|
||||
}
|
||||
resetp()
|
||||
}
|
||||
function print_missing_values( value) {
|
||||
for (i = 0; i < ensure_count; i++) {
|
||||
value = ensure_values[i]
|
||||
if (!in_found_values(value)) {
|
||||
sub(/^{}/, "", value)
|
||||
print attr " " value
|
||||
}
|
||||
}
|
||||
resetp()
|
||||
}
|
||||
/^dn:/ {
|
||||
ensure = 1
|
||||
}
|
||||
|
@ -1019,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
|
||||
|
@ -1056,6 +1073,12 @@ ev, ensureval ATTR VALUES...
|
|||
déjà. Par exemple, pour s'assurer que l'attribut ATTR a les valeurs V0 et
|
||||
V1, on ferait:
|
||||
ensureval ATTR V0 V1 // modaddval
|
||||
Certains attributs sont ordonnés. Leurs valeurs sont étiquettées avec leur
|
||||
index, e.g {2}value. Si l'on ne veut pas faire de correspondance exacte,
|
||||
c'est à dire tester uniquement la présence d'une valeur indépendamment de
|
||||
son index, il faut utiliser la syntaxe {}value, e.g:
|
||||
ensureval ATTR {}value // modaddval
|
||||
S'il faut ajouter les valeurs, elle sont mentionnées sans le préfixe {}
|
||||
sed ARGS
|
||||
awk ARGS
|
||||
grep ARGS
|
||||
|
@ -1281,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
|
||||
|
@ -1312,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}" "$@");;
|
||||
|
|
Loading…
Reference in New Issue