]> CyberLeo.Net >> Repos - FreeBSD/releng/10.1.git/blob - etc/autofs/include_ldap
Forced commit to sys/conf/newvers.sh to mark the real
[FreeBSD/releng/10.1.git] / etc / autofs / include_ldap
1 #!/bin/sh
2 #
3 # $FreeBSD$
4 #
5
6 # Modify this to suit your needs.  The "$1" is the map name, eg. "auto_master".
7 # To debug, simply run this script with map name as the only parameter.  It's
8 # supposed to output map contents ("key location" pairs) to standard output.
9 SEARCHBASE="ou=$1,dc=example,dc=com"
10 ENTRY_ATTRIBUTE="cn"
11 VALUE_ATTRIBUTE="automountInformation"
12
13 /usr/local/bin/ldapsearch -LLL -x -o ldif-wrap=no -b "$SEARCHBASE" "$ENTRY_ATTRIBUTE" "$VALUE_ATTRIBUTE" | awk '
14 $1 == "'$ENTRY_ATTRIBUTE':" {
15         key = $2
16 }
17
18 $1 == "'$VALUE_ATTRIBUTE':" && key {
19         printf "%s%s", key, OFS
20         key = ""
21         for (i=2; i<NF; i++) {
22                 printf "%s%s", $(i), OFS
23         }
24         printf "%s%s", $NF, ORS
25 }
26
27 # Double colon after attribute name means the value is in Base64.
28 $1 == "'$VALUE_ATTRIBUTE'::" && key {
29         printf "%s%s", key, OFS
30         key = ""
31         for (i=2; i<NF; i++) {
32                 printf "%s%s", $(i), OFS
33         }
34         printf "%s", $NF | "b64decode -rp"
35         close("b64decode -rp")
36         printf "%s", ORS
37 }
38 '