addr) RET=`route -n | awk '/^0.0.0.0/{print $2}'` ;;
*) echo "cp_get_ifdefault: Argument required (dev or addr)" >&2 ;;
esac
- [ -z "$RET" -a "$1" -a "$CP_VERBOSE" ] && echo "cp_get_ifdefault: No default route" >&2
+ [ -z "$RET" -a "$1" ] && echo "cp_get_ifdefault: No default route" >&2
[ -z "$echo_return" ] || echo $RET
CP_ECHO_RETURN="$echo_return"
[ -z "$RET" ] && return 1
# by ico, Tue, 15 Mar 2005 14:04:21 +0100
cp_backup_conffile() {
- [ "$CP_SCRIPT_DEBUG" ] && set -vx
- local file_bak
+ cp_check_and_backup "$@"
+}
+cp_check_and_backup() {
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+ local file_bak check did
+
+ if [ "x$1" = "x-r" ]; then
+ check=1
+ shift
+ fi
if [ -z "$1" ]; then
return 1
fi
echo "cp_backup_conffile: $1: No such file" 1>&2
return 1
fi
+ if [ -z "$2" ]; then
+ file_bak="/var/backups/`basename $1`.bak"
+ else
+ file_bak="/var/backups/`basename $2`.bak"
+ fi
- file_bak="/var/backups/`basename $1`.bak"
-
- if [ ! -f $file_bak ]; then
- cp -pf "$1" $file_bak
+ if [ ! -f "$file_bak" ]; then
+ cp -pf "$1" "$file_bak"
+ did=1
else
- if ! cmp -s "$1" $file_bak; then
- /usr/bin/savelog -p -c 7 $file_bak > /dev/null 2> /dev/null
- cp -pf $1 $file_bak
+ if ! cmp -s "$1" "$file_bak"; then
+ /usr/bin/savelog -p -c 7 "$file_bak" > /dev/null 2> /dev/null
+ cp -pf "$1" "$file_bak"
+ did=1
fi
fi
+
+ if [ "$check" -a "$did" ]; then
+ return 0
+ else
+ return 3
+ fi
}
# by jelly, Tue, 15 Mar 2005 14:04:21 +0100
fi
}
-# by ddzeko, Tue, 05 Apr 2005 15:47:37 +0200
-# - check is the script run by effective root
-cp_check_root() {
- 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() {
+ 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=""
+
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+
+ if [ ! -f /etc/ldap/slapd.conf ]; then
+ echo "cp_get_ldap_suffix: /etc/ldap/slapd.conf: No such file" >&2
+ return 1
+ 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"
+}
+
+# by ico, Wed, 20 Apr 2005 21:09:54 +0200
+cp_get_ldap_realm() {
+ 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=""
+
+ [ "$CP_SCRIPT_DEBUG" ] && set -vx
+
+ if [ ! -f /etc/ldap/slapd.conf ]; then
+ echo "cp_get_ldap_realm: /etc/ldap/slapd.conf: No such file" >&2
+ return 1
+ fi
+
+ cp_get_ldap_suffix || true
+ RET="`echo $RET | awk -F, '{print $1}' | awk -F= '{print $2}'`"
+
+ [ -z "$RET" ] && echo "cp_get_ldap_realm: No LDAP REALM in /etc/ldap/slapd.conf" >&2
+ [ -z "$echo_return" ] || echo $RET
+ CP_ECHO_RETURN="$echo_return"
}