File create-nis-indexes.sh of Package opendj

#!/bin/sh
#
#

if [ $# = 0 ]; then
	echo "Usage: $0 base_dn"
	echo ""
	echo "$0 dc=domain,dc=com > some_file.ldif"
	echo ""
	exit 1
fi

BASE_DN=$1
DNS_NAME=$(echo $1 | sed -e 's/dc=//g' -e 's/,/./g')

set indexes

indexes[0]="automountkey presence,equality"
indexes[1]="gidnumber presence,equality"
indexes[2]="ipHostNumber presence,substring"
indexes[3]="ipnetworkNumber presence,equality"
indexes[4]="nisnetgrouptriple presence,substring"
indexes[5]="membernisnetgroup presence,substring"
indexes[6]="oncRpcNumber presence,equality"
indexes[7]="uidNumber presence,equality"

for idx in "${indexes[@]}"
do
name=$(echo $idx | cut -d' ' -f1)
idxtype=$(echo $idx | awk '{
        split($2, t, ",");
        for (i in t) {
                     printf("--set index-type:%s ", t[i]);
                     }
        }')
        printf "create-local-db-index --backend-name %s --index-name %s %s\n" \
                "userRoot" "$name" "$idxtype"
done


indexes[0]="getgrent;group;ou=group;objectClass=posixGroup"
indexes[1]="gethostent;hosts;ou=hosts;objectClass=ipHost"
indexes[2]="getnetent;networks;ou=networks;objectClass=ipNetwork"
indexes[3]="getpwent;passwd;ou=people;objectClass=posixAccount"
indexes[4]="getrpcent;rpc;ou=rpc;objectClass=onRpc"
indexes[5]="getspent;shadow;ou=people;objectClass=shadowAccount"
indexes[6]="getauhoent;auho;automountname=auto_home;objectClass=automount"
indexes[7]="getsoluent;solu;ou=people;objectclass=SolarisUserAttr"
indexes[8]="getauduent;audu;ou=people;objectclass=SolarisAudituser"
indexes[9]="getauthent;auth;ou=SolarisAuthAttr;objectclass=SolarisAuthAttr"
indexes[10]="getexecent;exec;ou=SolarisProfAttr;&(objectClass=SolarisExecAttr)(SolarisKernelSecurityPolicy=*)"
indexes[11]="getprofent;prof;ou=SolarisProfAttr;&(objectClass=SolarisProfAttr)(SolarisAttrLongDesc=*)"
indexes[12]="getmailent;mail;ou=aliases;objectClass=mailGroup"
indexes[13]="getbootent;boot;ou=ethers;&(objectClass=bootableDevice)(bootParameter=*)"
indexes[14]="getethent;ethers;ou=ethers;&(objectClass=ieee802Device)(maxAddress=*)"
indexes[15]="getngrpent;netgroup;ou=netgroup;objectClass=nisNetGroup"
indexes[16]="getipnent;ipn;ou=networks;&(objectClass=ipNetwork)(cn=*)"
indexes[17]="getprent;pr;ou=printers;objectClass=printerService"
indexes[18]="getmaskent;mask;ou=networks;&(objectClass=ipNetwork)(ipNetMaskNumber=*)"
indexes[19]="getip4ent;ip4;ou=hosts;&(objectClass=ipHost)(ipHostNumber=*.*)"
indexes[20]="getip6ent;ip6;ou=hosts;&(objectClass=ipHost)(ipHostNumber=*:*)"

for idx in "${indexes[@]}"
do
	i=$(echo $idx | cut -d';' -f1)
	j=$(echo $idx | cut -d';' -f2)
	k=$(echo $idx | cut -d';' -f3)
	m=$(echo $idx | cut -d';' -f4)
	name="${DNS_NAME}.${i}"
	idx_dn="${k},${BASE_DN}"
	filter=$(printf "filter:'%s'\n" "$m")

	printf "create-local-db-vlv-index --backend-name userRoot --index-name $name --set \"sort-order:cn uid\" --set scope:subordinate-subtree --set base-dn:$idx_dn --set $filter\n"
done

exit
openSUSE Build Service is sponsored by