#!/bin/sh
# usage: ldapdns-conf acct logacct /ldapdns myip ldapip dn [suffix]

# args
auser=$1
auid=`id -u $1`
agid=`id -g $1`
luser=$2
luid=`id -u $2`
lgid=`id -g $2`
dir=$3
myip=$4
ldapip=$5
binddn=$6
suffix=$7
ldapdns=`which ldapdns`

if [ "X$binddn" = "X" ]; then
	echo "Usage: ldapdns-conf acct logacct /dir myip ldaphost dn [suffix]" >&2
	exit 0
fi

if [ "X$ldapdns" = "X" ]; then exit 1; fi
if [ "X$auid" = "X" ]; then exit 1; fi
if [ "X$agid" = "X" ]; then exit 1; fi
if [ "X$luid" = "X" ]; then exit 1; fi
if [ "X$lgid" = "X" ]; then exit 1; fi

# make initial dir
mkdir $dir
chmod 03755 $dir

# make log
mkdir $dir/log $dir/log/main
touch $dir/log/status
chmod 02755 $dir/log $dir/log/main
chmod 0644 $dir/log/status
chown $luid:$lgid $dir/log/main $dir/log/status

echo '#!/bin/sh' > $dir/log/run
echo 'exec setuidgid '"$luser"' multilog t ./main' >> $dir/log/run
chmod 0755 $dir/log/run

echo '#!/bin/sh' > $dir/run
echo 'exec 2>&1' >>$dir/run
echo 'exec envuidgid '"$auser"' envdir ./env softlimit -d2000000 '$ldapdns >>$dir/run
chmod 0755 $dir/run

mkdir $dir/root
chmod 02755 $dir/root

mkdir $dir/env
chmod 02755 $dir/env

echo $dir/root > $dir/env/ROOT
chmod 0600 $dir/env/ROOT

echo $myip > $dir/env/IP
chmod 0644 $dir/env/IP

echo 'hostmaster@'`(domainname.sh || domainname) 2>/dev/null` > $dir/env/HOSTMASTER
chmod 0644 $dir/env/HOSTMASTER

echo $binddn > $dir/env/LDAP_AUTH_NAME
chmod 0644 $dir/env/LDAP_AUTH_NAME

echo $ldapip > $dir/env/LDAP_HOSTS
chmod 0644 $dir/env/LDAP_HOSTS

if [ "X$suffix" != "X" ]; then
	echo $suffix > $dir/env/LDAP_SUFFIX
	chmod 0644 $dir/env/LDAP_SUFFIX
fi

echo "Don't forget to set \$ROOT/root/password" >&2
exit 0
