summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2007-02-22 10:16:28 +0000
committerJonas Smedegaard <dr@jones.dk>2007-02-22 10:16:28 +0000
commit7f31a766f71a64ad658a337e0bd14aa9282c2c29 (patch)
tree98ce6fc75b14b7ede85716298397b92c8fc5eb43
parentf6db1236bed1c665c27b12ccd0c99027790f3f8b (diff)
Resolve sorted files before use. Fail on error (and avoid diffs being treated as errors).
-rwxr-xr-xsavelocaltweaks7
1 files changed, 4 insertions, 3 deletions
diff --git a/savelocaltweaks b/savelocaltweaks
index a4750ae..4f0bec5 100755
--- a/savelocaltweaks
+++ b/savelocaltweaks
@@ -1,6 +1,6 @@
#!/bin/sh
-#set -e
+set -e
basedir="/etc"
targetdir="$(mktemp -td localtweaks.XXXXXX)"
@@ -33,7 +33,8 @@ if [ -d "$(dirname "$excludefile")" ] && [ -r "$excludefile" ]; then
fi
# process all files once each
-for file in $(for x in $files; do echo $x; done | uniq | sort); do
+files="$(for x in $files; do echo $x; done | uniq | sort)"
+for file in $files; do
# file were chosen based on backups - it may not exist itelf
[ -s "$basedir/$file" ] || continue
@@ -56,7 +57,7 @@ for file in $(for x in $files; do echo $x; done | uniq | sort); do
# Only diff against existing and non-empty files.
if [ -n "$ext" ] && [ -s "$basedir/$file$ext" ]; then
- diff -ruN "$basedir/$file$ext" "$basedir/$file" > "$targetdir/$basedir/$file.diff"
+ diff -ruN "$basedir/$file$ext" "$basedir/$file" > "$targetdir/$basedir/$file.diff" || [ $? -lt 2 ]
chown --reference="$basedir/$file" "$targetdir/$basedir/$file.diff"
chmod --reference="$basedir/$file" "$targetdir/$basedir/$file.diff"
chmod a-x "$targetdir/$basedir/$file.diff"