X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=carnet-tools-cn.git;a=blobdiff_plain;f=functions.sh;h=75014f0f6694afeacd64d5c44586360921b83e5d;hp=773e5225ba53d8162be00c17f7d10f1adc9eb683;hb=84585bc441d81f0e9d0b1cc514d88a97efe8a56f;hpb=a0b0241a8a528c25da8763e783b42f43db156f6a diff --git a/functions.sh b/functions.sh index 773e522..75014f0 100644 --- a/functions.sh +++ b/functions.sh @@ -17,13 +17,13 @@ cp_get_ifaddr() { if ! ifconfig $interface 2> /dev/null >> /dev/null; then echo "cp_get_ifaddr: $interface: No such interface" 1>&2 CP_ECHO_RETURN="$echo_return" - return 1 + return 2 fi ifaddr="`/sbin/ifconfig $interface | awk '/inet/{ printf("%s\n",substr($2,index($2,":")+1)) }'`" if [ -z $ifaddr ]; then - echo "cp_get_ifaddr: $interface: No such ipaddress" 1>&2 + echo "cp_get_ifaddr: $interface: No ip address found" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 fi @@ -58,7 +58,7 @@ cp_get_ifmask() { ifmask="`/sbin/ifconfig $interface | awk '/Mask/{if($3~/Mask/)a=$3;else if ($4~/Mask/)a=$4;printf ("%s\n", substr(a,index(a,":")+1))}'`" if [ -z "$ifmask" ]; then - echo "cp_get_ifmask: $interface: No such netmask" 1>&2 + echo "cp_get_ifmask: $interface: No netmask found" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 fi @@ -114,14 +114,14 @@ cp_get_netaddr() { cp_get_ifaddr "$interface" ipaddress="$RET" if [ -z $ipaddress ]; then - echo "cp_get_netaddr: $interface: No such ipaddress" 1>&2 + echo "cp_get_netaddr: $interface: No IP address found" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 fi cp_get_ifmask "$interface" netmask="$RET" if [ -z $netmask ]; then - echo "cp_get_netaddr: $interface: No such netmask" 1>&2 + echo "cp_get_netaddr: $interface: No netmask found" 1>&2 CP_ECHO_RETURN="$echo_return" return 1 fi @@ -137,29 +137,48 @@ cp_get_netaddr() { CP_ECHO_RETURN="$echo_return" } +cp_check_and_backup() { + cp_backup_conffile -r "$@" +} + # by ico, Tue, 15 Mar 2005 14:04:21 +0100 cp_backup_conffile() { [ "$CP_SCRIPT_DEBUG" ] && set -vx - local file_bak - + local file_bak check did + + if [ "x$1" = "x-r" ]; then + check=1 + shift + fi if [ -z "$1" ]; then return 1 fi if [ ! -f "$1" ]; then echo "cp_backup_conffile: $1: No such file" 1>&2 - return 1 + return 2 + 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 @@ -170,7 +189,7 @@ cp_backup_conffile() { # cp_check_and_sed() { [ "$CP_SCRIPT_DEBUG" ] && set -vx - local s sedcmd ret i + local s sedcmd grepret ret i s="$1" shift sedcmd="$1" @@ -179,7 +198,10 @@ cp_check_and_sed() { for i in "$@" do [ -e "$i" ] || continue - egrep -q "$s" "$i" || continue + if ! egrep -q "$s" "$i"; then + grepret=1 + continue + fi [ -h "$i" ] && i=$(readlink -f "$i") sed "$sedcmd" "$i" > "$i.dpkg-tmp" if ! cmp -s "$i" "$i.dpkg-tmp" 2>&1 >/dev/null; then @@ -189,6 +211,7 @@ cp_check_and_sed() { fi ret=0 done + [ "$ret" -eq 2 -a "$grepret"] && ret=1 || true return $ret } @@ -330,7 +353,7 @@ cp_get_ldap_suffix() { if [ ! -f /etc/ldap/slapd.conf ]; then echo "cp_get_ldap_suffix: /etc/ldap/slapd.conf: No such file" >&2 - return 1 + return 2 fi RET="`awk '/^suffix/ { exit } @@ -360,7 +383,7 @@ cp_get_ldap_realm() { if [ ! -f /etc/ldap/slapd.conf ]; then echo "cp_get_ldap_realm: /etc/ldap/slapd.conf: No such file" >&2 - return 1 + return 2 fi cp_get_ldap_suffix || true