diff options
-rw-r--r-- | quilt/scripts/backup-files.in | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/quilt/scripts/backup-files.in b/quilt/scripts/backup-files.in index c7e3a68..bff2b72 100644 --- a/quilt/scripts/backup-files.in +++ b/quilt/scripts/backup-files.in @@ -91,8 +91,6 @@ restore() local file="$1" local backup="${OPT_PREFIX}${file}" - mkdir -p "$(dirname "$file")" - if [ ! -e "$backup" ]; then return 1 fi @@ -101,32 +99,28 @@ restore() if [ -e "$file" ]; then rm "$file" fi - if [ -z "$OPT_KEEP_BACKUP" ]; then - rm "$backup" - rmdir -p "${backup%/*}" 2> /dev/null || true - fi else $ECHO "Restoring $file" if [ -e "$file" ]; then rm "$file" + else + mkdir -p "$(dirname "$file")" fi - if [ -n "$OPT_NOLINKS" -a "$(stat @STAT_HARDLINK@ "$backup")" != "1" ]; then + if [ -n "$OPT_NOLINKS" ]; then cp -p "$backup" "$file" else ln "$backup" "$file" 2> /dev/null || cp -p "$backup" "$file" - if [ -n "$OPT_NOLINKS" ]; then - ensure_nolinks "$file" - fi fi - if [ -z "$OPT_KEEP_BACKUP" ]; then - rm "$backup" - rmdir -p "${backup%/*}" 2> /dev/null || true - fi if [ -n "$OPT_TOUCH" ]; then touch "$file" fi fi + + if [ -z "$OPT_KEEP_BACKUP" ]; then + rm "$backup" + rmdir -p "${backup%/*}" 2> /dev/null || true + fi } remove() |