Fixing find_snap to take its second argument into account.
[live-boot-grml.git] / scripts / live
index 98129a5..f257218 100755 (executable)
@@ -896,6 +896,8 @@ do_snap_copy ()
 
        if [ -b "${fromdev}" ]
        then
+               log_success_msg "Copying snapshot ${fromdev} to ${todir}..."
+
                # look for free mem
                if [ -n "${HOMEMOUNTED}" -a "${snap_type}" = "HOME" ]
                then
@@ -933,9 +935,8 @@ do_snap_copy ()
 
                return 0
        else
-               return 1
-
                log_warning_msg "Unable to find the snapshot ${snap_type} medium"
+               return 1
        fi
 }
 
@@ -943,16 +944,17 @@ find_snap ()
 {
        # Look for ${snap_label}.* in block devices
        snap_label="${1}"
+       black_listed_devices="${2}"
 
        if [ "${PERSISTENT}" != "nofiles" ]
        then
                # search for image files
-               snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2")
+               snapdata=$(find_files "${PERSISTENT_PATH}${snap_label}.squashfs ${PERSISTENT_PATH}${snap_label}.cpio.gz ${PERSISTENT_PATH}${snap_label}.ext2 ${PERSISTENT_PATH}${snap_label}.ext3 ${PERSISTENT_PATH}${snap_label}.ext4 ${PERSISTENT_PATH}${snap_label}.jffs2" "${black_listed_devices}")
        fi
 
        if [ -z "${snapdata}" ]
        then
-               snapdata=$(find_cow_device "${snap_label}")
+               snapdata=$(find_cow_device "${snap_label}" "${black_listed_devices}")
        fi
        echo "${snapdata}"
 }
@@ -1012,8 +1014,16 @@ try_snap ()
                                cpioargs='--unconditional --make-directories'
                        fi
 
-                       cd "${snap_mount}" && zcat "${snapback}/${snapfile}" | $cpiopath $cpioargs --extract --preserve-modification-time --no-absolute-filenames --sparse 2>/dev/null
-                       RES="$?"
+                       if [ -s "${snapback}/${snapfile}" ]
+                       then
+                               BEFOREDIR="$(pwd)"
+                               cd "${snap_mount}" && zcat "${snapback}/${snapfile}" | $cpiopath $cpioargs --extract --preserve-modification-time --no-absolute-filenames --sparse 2>/dev/null
+                               RES="$?"
+                               cd "${BEFOREDIR}"
+                       else
+                               log_warning_msg "${snapback}/${snapfile} is empty, adding it for sync on reboot."
+                               RES="0"
+                       fi
 
                        if [ "${RES}" != "0" ]
                        then
@@ -1045,7 +1055,7 @@ try_snap ()
 
                if ! do_snap_copy "${dev}" "${snap_mount}" "${snap_type}"
                then
-                       log_warning_msg "Impossible to include the ${snap_type} Snapshot"
+                       log_warning_msg "Impossible to include the ${snap_type} Snapshot (i)"
                        return 1
                else
                        if [ -n "${snapfile}" ]