From 8036a96b471560341b34f33806870d8e323faf0a Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 4 Apr 2007 15:26:31 +0000 Subject: Merge savelocaltweaks with localbackupconfig. --- savelocaltweaks | 107 -------------------------------------------------------- 1 file changed, 107 deletions(-) delete mode 100755 savelocaltweaks (limited to 'savelocaltweaks') diff --git a/savelocaltweaks b/savelocaltweaks deleted file mode 100755 index 657f768..0000000 --- a/savelocaltweaks +++ /dev/null @@ -1,107 +0,0 @@ -#!/bin/sh - -set -e - -PRG=$(basename "$0") - -TEMP="`getopt -s sh -o t:f -l target:,force -n "$PRG" -- "$@"`" -if [ $? != 0 ] ; then echo >&2 "ERROR: Internal getopt error." ; exit 1 ; fi -eval set -- "$TEMP" - -targetdir='' -force='no' -while true ; do - case "$1" in - -t|--target) targetdir="$2" ; shift 2 ;; - -f|--force) force="yes" ; shift ;; - --) shift ; break ;; - *) echo >&2 "ERROR: Internal error resolving options." ; exit 1 ;; - esac -done - -basedir="/etc" -includefile="/etc/local/localtweaks.include" -excludefile="/etc/local/localtweaks.exclude" -extensions=".orig .old" - -if [ -n "$targetdir" ]; then - targetdirparent="$(dirname "$targetdir")" - if ! [ -d "$targetdirparent" ]; then - if [ "$force" = "yes" ]; then - mkdir -p "$targetdirparent" - else - echo >&2 "Error: Parent directory for target directory does not exist." - exit 1 - fi - elif [ -e "$targetdir" ]; then - if [ "$force" = "yes" ]; then - rm -rf "$targetdir" - else - echo >&2 "Error: Target directory already exists." - exit 1 - fi - fi -fi - -tempdir="$(mktemp -td localtweaks.XXXXXX)" - -for ext in $extensions; do - extfiles="$(find $basedir -name "*$ext")" - for extfile in $extfiles; do - xextfile="${extfile%$ext}" - files="$files ${xextfile#$basedir}" - done -done - -includes="" -if [ -d "$(dirname "$includefile")" ] && [ -r "$includefile" ]; then - includes="$(cat "$includefile")" - for include in $includes; do - files="$files ${include#$basedir}" - done -fi - -excludes="" -if [ -d "$(dirname "$excludefile")" ] && [ -r "$excludefile" ]; then - xexcludes="$(cat "$excludefile")" - for exclude in $xexcludes; do - excludes="$excludes ${exclude#$basedir}" - done -fi - -# process all files once each -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 - - for exclude in $excludes; do - [ "$file" = "$exclude" ] && continue 2 - done - - ext="" - for xext in $extensions; do - if [ -e $basedir/$file$xext ]; then - ext="$xext" - continue - fi - done - - newdir="$tempdir/$basedir/$(dirname "$file")" - mkdir -p "$newdir" - cp -af "$basedir/$file" "$newdir" - - # Only diff against existing and non-empty files. - if [ -n "$ext" ] && [ -s "$basedir/$file$ext" ]; then - diff -ruN "$basedir/$file$ext" "$basedir/$file" > "$tempdir/$basedir/$file.diff" || [ $? -lt 2 ] - chown --reference="$basedir/$file" "$tempdir/$basedir/$file.diff" - chmod --reference="$basedir/$file" "$tempdir/$basedir/$file.diff" - chmod a-x "$tempdir/$basedir/$file.diff" - fi -done - -if [ -n "$targetdir" ]; then - mv "$tempdir" "$targetdir" - rm -rf "$tempdir" -fi -- cgit v1.2.3