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
