From 7840f2d8b7c63a96e4d68edcab1d49e39bcf1511 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 29 Sep 2009 15:37:26 +0000 Subject: lbu: try handle full media try avoid ending up with a lbu media without any apkovl. --- lbu.in | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lbu.in b/lbu.in index 38154d5..c1ab743 100644 --- a/lbu.in +++ b/lbu.in @@ -75,9 +75,18 @@ backup_apkovl() { vecho "Creating backup $backup" if [ -z "$DRYRUN" ]; then mv "$outfile" "$backup" + APKOVL_BACKUP="$backup" fi } +restore_apkovl() { + local outfile="$1" + if [ -n "$DRYRUN" ] || [ -z "$APKOVL_BACKUP" ]; then + return 0 + fi + mv "$APKOVL_BACKUP" "$outfile" +} + # verify we have openssl if we want to encrypt check_openssl() { [ -z "$ENCRYPTION" ] && return 0 @@ -274,10 +283,16 @@ cmd_package() { if [ "x$pkg" = "x-" ]; then cat "$tmppkg" else - cp "$tmppkg" "$pkg" + if cp "$tmppkg" "$pkg.new"; then + mv "$pkg.new" "$pkg" + rc=$? + else + rm -f "$pkg.new" + rc=1 + fi fi fi - vecho "Created $pkg" + [ $rc -eq 0 ] && vecho "Created $pkg" fi return $rc } @@ -354,7 +369,6 @@ cmd_commit() { outfile="$outfile.$ENCRYPTION" fi - # remove old config files if [ -n "$DELETEOLDCONFIGS" ] ; then local rmfiles=$(ls "$mnt/"*.apkovl.tar.gz* 2>/dev/null) @@ -382,6 +396,7 @@ cmd_commit() { # create package if ! cmd_package "$outfile"; then + restore_apkovl "$outfile" cleanup die "Problems creating archive. aborting" fi -- cgit v1.2.3