-# by ddzeko, Tue, 05 Apr 2005 15:47:37 +0200
-# - check is the script run by effective root
-cp_check_root() {
- local euid
- euid=`awk 'BEGIN{print PROCINFO["euid"]}'`
- case "$euid" in
- 0) RET=y
- return 0 ;;
- ?*) RET=n
- return 1 ;;
- *) RET=""
- echo "cp_check_root: cannot determine euid" 2>&1
- ;;
- esac
+# by ico, Wed, 20 Apr 2005 21:09:54 +0200
+cp_get_ldap_suffix() {
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+
+ local echo_return
+ echo_return="$CP_ECHO_RETURN" # since we're making our own calls
+ # in our own way we need to set CP_ECHO_RETURN the way we want it
+ # but preserving initial state so it could be used afterwards
+ CP_ECHO_RETURN=""
+
+ if [ ! -f /etc/ldap/slapd.conf ]; then
+ echo "cp_get_ldap_suffix: /etc/ldap/slapd.conf: No such file" >&2
+ return 2
+ fi
+
+ RET="`awk '/^suffix/ { exit }
+ END { gsub(/"/, "", $2); print $2 }' \
+ < /etc/ldap/slapd.conf`"
+
+ if [ "`echo $RET | sed 's/,/ /g' | wc -w`" -gt 2 ]; then
+ RET=""
+ echo "cp_get_ldap_suffix: Invalid LDAP suffix in /etc/ldap/slapd.conf" >&2
+ return 2
+ fi
+
+ [ -z "$RET" ] && echo "cp_get_ldap_suffix: No LDAP suffix in /etc/ldap/slapd.conf" >&2
+ [ -z "$echo_return" ] || echo $RET
+ CP_ECHO_RETURN="$echo_return"