]> andersk Git - config-package-dev.git/blobdiff - divert.sh.in
Set LC_ALL=C when matching potentially localized dpkg output
[config-package-dev.git] / divert.sh.in
index 47f006c9b9a98e7abf4a0c39534a36e2e8eab8f1..2c3f161b4ea47d092c7899e82f3885468d883e4a 100644 (file)
@@ -11,7 +11,7 @@
 #   Undoes the action of divert_link <prefix> <suffix> specified
 #   above.
 #
-# Version: 3.4
+# Version: 4.0
 #
 
 package=#PACKAGE#
@@ -19,19 +19,22 @@ package=#PACKAGE#
 ours=#DEB_DIVERT_EXTENSION#
 theirs=#DEB_DIVERT_EXTENSION#-orig
 
-divert_link()
+divert_link_divert()
 {
-    prefix=$1
-    suffix=$2
-
-    file=$prefix$suffix
-    ourfile=$prefix$ours$suffix
-    theirfile=$prefix$theirs$suffix
-
-    if ! dpkg-divert --list "$package" | \
+    file=$1
+    ourfile=$2
+    theirfile=$3
+    if ! LC_ALL=C dpkg-divert --list "$package" | \
        grep -xFq "diversion of $file to $theirfile by $package"; then
        dpkg-divert --divert "$theirfile" --rename --package "$package" --add "$file"
     fi
+}
+
+divert_link_symlink()
+{
+    file=$1
+    ourfile=$2
+    theirfile=$3
     if [ ! -L "$file" ] && [ ! -e "$file" ]; then
        ln -s "$(basename "$ourfile")" "$file"
     elif [ ! -L "$file" ] || \
@@ -41,7 +44,7 @@ divert_link()
     fi
 }
 
-undivert_unlink()
+divert_link()
 {
     prefix=$1
     suffix=$2
@@ -49,7 +52,23 @@ undivert_unlink()
     file=$prefix$suffix
     ourfile=$prefix$ours$suffix
     theirfile=$prefix$theirs$suffix
+    divert_link_divert "$file" "$ourfile" "$theirfile"
+    divert_link_symlink "$file" "$ourfile" "$theirfile"
+}
+
+divert_remove()
+{
+    file=$1
+    ourfile=""
+    theirfile=$2
+    divert_link_divert "$file" "$ourfile" "$theirfile"
+}
 
+undivert_unlink_symlink()
+{
+    file="$1"
+    ourfile="$2"
+    theirfile="$3"
     if [ ! -L "$file" ] || \
        [ "$(readlink "$file")" != "$(basename "$ourfile")" -a \
          "$(readlink "$file")" != "$(basename "$theirfile")" ]; then
@@ -57,6 +76,11 @@ undivert_unlink()
     else
        rm -f "$file"
     fi
+}
+
+undivert_unlink_divert()
+{
+    file="$1"
     if [ ! -L "$file" ] && [ ! -e "$file" ]; then
        dpkg-divert --remove --rename --package "$package" "$file"
     else
@@ -64,3 +88,46 @@ undivert_unlink()
     fi
 }
 
+undivert_unlink()
+{
+    prefix=$1
+    suffix=$2
+
+    file=$prefix$suffix
+    ourfile=$prefix$ours$suffix
+    theirfile=$prefix$theirs$suffix
+
+    undivert_unlink_symlink "$file" "$ourfile" "$theirfile"
+    undivert_unlink_divert "$file" "$package"
+}
+
+undivert_unremove()
+{
+    file=$1
+    undivert_unlink_divert "$file"
+}
+
+check_undivert_unlink()
+{
+    prefix=$1
+    suffix=$2
+
+    file=$prefix$suffix
+    ourfile=$prefix$ours$suffix
+    theirfile=$prefix$theirs$suffix
+
+    if LC_ALL=C dpkg-divert --list "$package" | \
+       grep -xFq "diversion of $file to $theirfile by $package"; then
+       undivert_unlink "$prefix" "$suffix"
+    fi
+}
+
+check_undivert_unremove()
+{
+    file=$1
+    removedfile=$2
+    if LC_ALL=C dpkg-divert --list "$package" | \
+       grep -xFq "diversion of $file to $removedfile by $package"; then
+       undivert_unremove "$file"
+    fi
+}
This page took 0.257262 seconds and 4 git commands to generate.