From: Nicolas Boisselier Date: Thu, 30 Nov 2017 03:44:25 +0000 (+0000) Subject: etc/profile.d/ldap.sh X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=68f9ff069338e29593f6a54af49b032be9468de7;p=nb.git etc/profile.d/ldap.sh --- diff --git a/etc/profile.d/ldap.sh b/etc/profile.d/ldap.sh index a5870ed9..1247475e 100644 --- a/etc/profile.d/ldap.sh +++ b/etc/profile.d/ldap.sh @@ -75,11 +75,32 @@ ldap_cn() { } ldapsearch_csv() { - [ "$1" == "--noheader" -o "$1" == "-nh" ] && shift && ldapsearch_csv $@ | tail -n +2 && return - [ "$1" == "--human" -o "$1" == "-h" ] && shift && ldapsearch_csv $@ | csv2human && return + local aldap aawk human=no human_opt='--noheader' + while [ $# -gt 0 ]; do + case "$1" in + -head) aawk+=" $1"; human_opt="" ;; + -human|-H) human=yes; human_opt=""; aawk+=" -head" ;; + -nohead) human_opt="--noheader"; aawk=${aawk// -head/} ;; + *) aldap+=" $1" ;; + esac + shift + done + aldap=${aldap/ /}; aawk=${aawk/ /} + [ $human = yes ] && ldapsearch_csv $aldap $aawk | csv2human $human_opt && return + ldapsearch -LLLx -o ldif-wrap=no $aldap | awk -f $NB_ROOT/lib/awk/ldap2csv.awk -- $aawk - #local filter="$1"; shift - 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 + #echo "ldapsearch -LLLx -o ldif-wrap=no $aldap | awk -f $NB_ROOT/lib/awk/ldap2csv.awk -- $aawk" + #$(case "$1" in -zaza) echo ZAZA;; esac) +# NB 30.11.17 local grep=${aldap#* } +# NB 30.11.17 grep=${grep// /\\|} +# NB 30.11.17 [ -z "$grep" ] && grep='.' +# NB 30.11.17 slapcat -a "${aldap%% *}" -o ldif-wrap=no | grep "^\($|$grep\|\)" | awk -f $NB_ROOT/lib/awk/ldap2csv.awk +# NB 30.11.17 echo "slapcat -a "${aldap%% *}" -o ldif-wrap=no | grep "^\($|$grep\)" | awk -f $NB_ROOT/lib/awk/ldap2csv.awk" + + #[ "$1" == "-human" ] && shift && ldapsearch_csv $@ | csv2human && return + #ldapsearch -LLLx -o ldif-wrap=no $@ | awk -f $NB_ROOT/lib/awk/ldap2csv.awk + #local filter="$1"; shift #slapcat -a "$filter" -o ldif-wrap=no | awk -f $NB_ROOT/lib/awk/ldap2csv.awk } diff --git a/lib/awk/ldap2csv.awk b/lib/awk/ldap2csv.awk index 0a99a70f..f0e90641 100755 --- a/lib/awk/ldap2csv.awk +++ b/lib/awk/ldap2csv.awk @@ -86,6 +86,7 @@ BEGIN { filter = "" for (i = 1; i < ARGC; i++) { if (ARGV[i] ~ /^[a-zA-Z0-9]+$/) filter = filter" "ARGV[i] + else if (ARGV[i] = "-head") PRINT_HEAD = 1 delete ARGV[i] }