local args
slapcat_csv '(&(objectClass=posixGroup)(memberUid=*))' cn memberUid | while read -r -a line; do
+
group=${line[0]}
line=("${line[@]:1}") # shift
+
for uid in ${line[*]}; do
- #slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword
+ #echo slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword
pass=$(slapcat_csv "(&(uid=$uid)(userPassword=*))" userPassword)
echo $group $uid $pass
done
PRINT_HEAD = 0
}
+function header() {
+}
+
/^$/ {
if (FOUND == 0) {
if (PRINT_HEAD == 1 && !count) {
line = ""
- #for (i in fields) {
split(filter,values," ")
for (i in values) {
i = values[i]
- sub(/:$/,"",i)
line = line"\t"i
}
sub(/^\t/,"",line)
split(filter,values," ")
for (i in values) {
i = values[i]
- #for (i in fields) {
-
- if (i ~ /:$/) {
-# NB 01.12.17 cmd="echo "h[i]" | base64 -d"
-# NB 01.12.17 cmd | getline x
-# NB 01.12.17 close(cmd)
-# NB 01.12.17 h[i] = x
- h[i] = base64decode(h[i])
- }
+ if (B64[i] == 1) h[i] = base64decode(h[i])
line = line"\t"h[i]
}
/: / && !/^(objectClass_): / {
FOUND = 1
+
+ line = $0
+ sub(/^.*?: /,"",line)
+ sub(/\t/," ",line)
+ sub(/[ \r\n]+$/,"",line)
+ #gsub(/\r?\n/,"$",line)
+
field = $1
- sub(/^.*?: /,"",$0)
- sub(/\t/," ",$0)
- sub(/[ \r\n]+$/,"",$0)
- #gsub(/\r?\n/,"$",$0)
+ # Base64
+ B64[field] = 0
+ if (field ~ /:$/) {
+#print ">>>>"field
+# NB 01.12.17 cmd="echo "line" | base64 -d"
+# NB 01.12.17 cmd | getline x
+# NB 01.12.17 close(cmd)
+# NB 01.12.17 line = x
+ #line = base64decode(line)
+#print "<<<<"line
+ sub(/:$/,"",field)
+ B64[field] = 1
+ }
+
if (field in h && h[field] != "") {
- h[field] = h[field]""CONCAT""$0
+ h[field] = h[field]""CONCAT""line
} else {
- h[field] = $0
+ h[field] = line
if (PFIELDS_OK == 0) filter = filter" "field
}