summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2003-11-01 18:59:40 +0000
committerJonas Smedegaard <dr@jones.dk>2003-11-01 18:59:40 +0000
commitd5236b612903840e41337e81577ae4a16c8aeabf (patch)
tree3fc12096be57b363d05b05b1a033225e405fb39c
parentd084bc67d0407a7ec274c78be789ea5cc13e1dc6 (diff)
New script savelocaltweaks.
-rwxr-xr-xsavelocaltweaks36
1 files changed, 36 insertions, 0 deletions
diff --git a/savelocaltweaks b/savelocaltweaks
new file mode 100755
index 0000000..601838c
--- /dev/null
+++ b/savelocaltweaks
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+targetdir=/tmp/localtweaks
+
+origfiles="`cd /etc && find . -name '*.orig'`"
+oldfiles="`cd /etc && find . -name '*.old'`"
+
+# merge all to only process once when both .orig and .old exist
+files="`echo $origfiles $oldfiles | tsort`"
+
+for file in $files; do
+ olddir="/etc/`dirname $file`"
+ newdir="$targetdir/`dirname $file`"
+ oldname="`basename $file`"
+ newname="`basename $file .orig`"
+ if [ ! -e $olddir/$newname.orig ]; then
+ newname="`basename $file .old`"
+ fi
+ if [ "$oldname" = "$newname" ]; then
+ echo "FATAL: file is neither .orig nor .old: \"$file\"!"
+ exit 1
+ fi
+ if [ ! -e $olddir/$oldname ]; then
+ echo "FATAL: file found disappeared again: \"$file\"!"
+ exit 1
+ fi
+ mkdir -p $newdir
+ cp -af $olddir/$newname $newdir
+
+ # Only diff against non-empty files.
+ if [ -s $olddir/$oldname ]; then
+ diff -ruN $olddir/$oldname $olddir/$newname > $newdir/$newname.diff
+ chmod --reference=$olddir/$newname $newdir/$newname.diff
+ chown --reference=$olddir/$newname $newdir/$newname.diff
+ fi
+done