]> git.nbdom.net Git - nb.git/commitdiff
lib/awk/ldap2csv.awk
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 29 Nov 2017 12:47:27 +0000 (12:47 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Wed, 29 Nov 2017 12:47:27 +0000 (12:47 +0000)
etc/profile.d/ldap.sh
lib/awk/ldap2csv.awk [changed mode: 0644->0755]

index 410ea62341cb02bb010e1f62ac52eafbc23fc345..a5870ed9b5647f06977cb046d91413c6c99599d5 100644 (file)
@@ -75,7 +75,11 @@ ldap_cn() {
 }
 
 ldapsearch_csv() {
-  ldapsearch -LLLx -o ldif-wrap=no $@ | awk -f $NB_ROOT/lib/awk/ldap2csv.awk
+  [ "$1" == "--noheader" -o "$1" == "-nh" ] && shift && ldapsearch_csv $@ | tail -n +2 && return
+  [ "$1" == "--human" -o "$1" == "-h" ] && shift && ldapsearch_csv $@ | csv2human && return
+
   #local filter="$1"; shift
+  ldapsearch -LLLx -o ldif-wrap=no $@ | awk -f $NB_ROOT/lib/awk/ldap2csv.awk -- $@
+
   #slapcat -a "$filter" -o ldif-wrap=no | awk -f $NB_ROOT/lib/awk/ldap2csv.awk
 }
old mode 100644 (file)
new mode 100755 (executable)
index 90cfe73..f2fba55
@@ -1,9 +1,10 @@
+#!/usr/bin/awk -f
+
 BEGIN {
   FS = ": "
   CONCAT = ";"
-  #h[x] = ""
   FOUND = 0
-  #delete h
+  PRINT_HEAD = 0
 }
 
 /^$/ {
@@ -12,7 +13,14 @@ BEGIN {
     next
   }
 
-  if (!count) {
+  if (PFIELDS_OK == 1) {
+    delete fields
+    for (i in PFIELDS) {
+      fields[i] = PFIELDS[i]
+    }
+  }
+
+  if (PRINT_HEAD == 1 && !count) {
     line = ""
     for (i in fields) {
       sub(/:$/,"",i)
@@ -64,3 +72,23 @@ BEGIN {
   fields[field]++
 }
 
+BEGIN {
+  split("",PFIELDS,"")
+  PFIELDS_OK = 0
+
+  filter = ""
+  for (i = 1; i < ARGC; i++) {
+    if (ARGV[i] ~ /^[a-zA-Z0-9]+$/) filter = filter""ARGV[i]" "
+    delete ARGV[i]
+  }
+
+  if (filter != "") {
+    sub(/ *$/,"",filter)
+    PFIELDS_OK = 1
+  }
+
+  split(filter,values," ")
+  for (i in values) {
+    PFIELDS[values[i]]++
+  }
+}