r68: jos ispravaka cp_check_and_sed + changelog
[carnet-tools-cn.git] / functions.sh
index cc892b7..520007e 100644 (file)
@@ -182,6 +182,7 @@ cp_backup_conffile() {
 }
 
 # by jelly, Tue, 15 Mar 2005 14:04:21 +0100
+# modified by ico, Mon,  6 Jun 2005 11:58:08 +0200
 # A sed wrapper, to use instead of perl -pi -e
 #  - relatively safe in-place s///g
 #  - takes care of symlinks and ownership
@@ -190,6 +191,10 @@ cp_backup_conffile() {
 cp_check_and_sed() {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx
   local s sedcmd grepret ret i
+  if [ -z "$3" ]; then
+    echo "Usage: cp_check_and_sed <regexp> <sed> <file> [file ...]" 2>&1 
+    return 1
+  fi
   s="$1"
   shift
   sedcmd="$1"
@@ -204,6 +209,11 @@ cp_check_and_sed() {
     fi
     [ -h "$i" ]        && i=$(readlink -f "$i")
     sed "$sedcmd" "$i" > "$i.dpkg-tmp"
+    if [ ! "$?" = "0" ]; then
+      rm "$i.dpkg-tmp"
+      echo "cp_check_and_sed: Problem with sed" 1>&2
+      return 5
+    fi
     if ! cmp -s "$i" "$i.dpkg-tmp" 2>&1 >/dev/null; then
       cp_mv "$i.dpkg-tmp" "$i"
     else
@@ -276,6 +286,7 @@ cp_mv () {
   fi
   mv "$new" "$old"
 }
+
 # by ddzeko, Mon, 21 Mar 2005 13:35:42 +0100
 cp_yes_no () {
   [ "$CP_SCRIPT_DEBUG" ] && set -vx