diff options
author | Jonas Smedegaard <dr@jones.dk> | 2003-11-01 18:59:40 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2003-11-01 18:59:40 +0000 |
commit | d5236b612903840e41337e81577ae4a16c8aeabf (patch) | |
tree | 3fc12096be57b363d05b05b1a033225e405fb39c | |
parent | d084bc67d0407a7ec274c78be789ea5cc13e1dc6 (diff) |
New script savelocaltweaks.
-rwxr-xr-x | savelocaltweaks | 36 |
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 |