From 31e39a4551eb81d8542047ba382408bff4391fe5 Mon Sep 17 00:00:00 2001 From: Chris Lamb Date: Wed, 26 Mar 2008 08:08:10 +0000 Subject: [PATCH] scripts/live-helpers: Search / use case This patch extends the find_files and find_cow_device utilities to search known-working partition types (removing two "FIXME"s) and reworks the syntax to use somewhat more readable case-statements. --- scripts/live-helpers | 65 ++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/scripts/live-helpers b/scripts/live-helpers index 771ab85..6c03751 100644 --- a/scripts/live-helpers +++ b/scripts/live-helpers @@ -244,20 +244,24 @@ find_cow_device () then echo "${devname}" return - elif [ "$(get_fstype ${devname})" = "vfat" ] - then - # FIXME: all supported block devices should be scanned - mkdir -p "${cow_backing}" - try_mount "${devname}" "${cow_backing}" "rw" - - if [ -e "${cow_backing}/${pers_label}" ] - then - echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*") - return 0 - else - umount ${cow_backing} - fi fi + + case "$(get_fstype ${devname})" in + vfat|ext2|ext3|jffs2) + mkdir -p "${cow_backing}" + try_mount "${devname}" "${cow_backing}" "rw" + + if [ -f "${cow_backing}/${pers_label}" ] + then + echo $(setup_loop "${cow_backing}/${pers_label}" "loop" "/sys/block/loop*") + return 0 + else + umount ${cow_backing} + fi + ;; + *) + ;; + esac done done } @@ -277,23 +281,24 @@ find_files () devname=$(sys2dev "${dev}") devfstype="$(get_fstype ${devname})" - if [ "${devfstype}" = "vfat" ] || [ "${devfstype}" = "ext2" ] || [ "${devfstype}" = "ext3" ] || [ "${devfstype}" = "jffs2" ] - then - # FIXME: all supported block devices should be scanned - mkdir -p "${snap_backing}" - try_mount "${devname}" "${snap_backing}" "ro" - - for filename in ${filenames} - do - if [ -e "${snap_backing}/${filename}" ] - then - echo "${devname} ${snap_backing} ${filename}" - return 0 - fi - done - - umount ${snap_backing} - fi + case "${devfstype}" in + vfat|ext2|ext3|jffs2) + # FIXME: all supported block devices should be scanned + mkdir -p "${snap_backing}" + try_mount "${devname}" "${snap_backing}" "ro" + + for filename in ${filenames} + do + if [ -f "${snap_backing}/${filename}" ] + then + echo "${devname} ${snap_backing} ${filename}" + return 0 + fi + done + + umount ${snap_backing} + ;; + esac done done } -- 2.1.4