Move the code to restore all files from a backup directory to a
separate function. This only duplicates a small amount of code, and
makes the code clearer. This will also allow further optimizations of
the specific use case of "quilt pop".

Signed-off-by: Jean Delvare <[email protected]>
Reviewed-by: Raphael Hertzog <[email protected]>
---
 quilt/scripts/backup-files.in |   50 ++++++++++++++++++++++++------------------
 1 file changed, 29 insertions(+), 21 deletions(-)

--- a/quilt/scripts/backup-files.in
+++ b/quilt/scripts/backup-files.in
@@ -140,6 +140,33 @@ restore()
        fi
 }
 
+restore_all()
+{
+       (cd "$OPT_PREFIX" && find . -type d -print0) \
+       | xargs -0 mkdir -p
+       if [ ${PIPESTATUS[0]} != 0 ]; then
+               return 1
+       fi
+
+       (cd "$OPT_PREFIX" && find . -type f -print0) \
+       | xargs -0 -r rm -f
+
+       find "$OPT_PREFIX" -type f -print \
+       | while read
+       do
+               restore_fast "${REPLY#$OPT_PREFIX}"
+       done
+
+       if [ -n "$OPT_TOUCH" ]; then
+               (cd "$OPT_PREFIX" && find . -type f -size +0 -print0) \
+               | xargs -0 -r touch
+       fi
+
+       if [ -z "$OPT_KEEP_BACKUP" ]; then
+               rm -rf "$OPT_PREFIX"
+       fi
+}
+
 remove()
 {
        local file=$1
@@ -227,16 +254,8 @@ fi
 
 if [ "$1" = - ]; then
        if [ "$OPT_WHAT" = restore ]; then
-               OPT_WHAT=restore_fast
-
-               (cd "$OPT_PREFIX" && find . -type d -print0) \
-               | xargs -0 mkdir -p
-               if [ ${PIPESTATUS[0]} != 0 ]; then
-                       exit 1
-               fi
-
-               (cd "$OPT_PREFIX" && find . -type f -print0) \
-               | xargs -0 -r rm -f
+               restore_all
+               exit
        fi
 
        find "$OPT_PREFIX" -type f -print \
@@ -247,17 +266,6 @@ if [ "$1" = - ]; then
        if [ ${PIPESTATUS[0]} != 0 ]; then
                exit 1
        fi
-
-       if [ "$OPT_WHAT" = restore_fast ]; then
-               if [ -n "$OPT_TOUCH" ]; then
-                       (cd "$OPT_PREFIX" && find . -type f -size +0 -print0) \
-                       | xargs -0 -r touch
-               fi
-
-               if [ -z "$OPT_KEEP_BACKUP" ]; then
-                       rm -rf "$OPT_PREFIX"
-               fi
-       fi
        exit
 fi
 


_______________________________________________
Quilt-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/quilt-dev

Reply via email to