diff options
| author | Tails developers <amnesia@boum.org> | 2010-11-01 18:23:05 +0100 |
|---|---|---|
| committer | Tails developers <amnesia@boum.org> | 2011-09-07 14:53:41 +0200 |
| commit | 3f02456e392ead3abf36bc181692fcb75c8f16f3 (patch) | |
| tree | 46f6f223f2846b9fba18e905fa44b7d6e8fdae93 /scripts/live | |
| parent | 209828c38d8af6fa2eab68cd668ca9109261f249 (diff) | |
| download | live-boot-3f02456e392ead3abf36bc181692fcb75c8f16f3.tar.gz live-boot-3f02456e392ead3abf36bc181692fcb75c8f16f3.zip | |
Factorizing loops on removable/non-removable devices.
The already duplicated code will be needed a few more times for the upcoming
persistent-media={removable,removable-usb} boot option. Copy/pasting it a few
more times seems the wrong way to go, hence this factorization.
Depending on the place they are used, the newly introduced functions must return
a list of devices named either /sys/block/* or /dev/*. Their first parameter
therefore specifies the wanted output format (default is /dev/* as it is the
most often used).
Diffstat (limited to 'scripts/live')
| -rwxr-xr-x | scripts/live | 48 |
1 files changed, 15 insertions, 33 deletions
diff --git a/scripts/live b/scripts/live index de82082..952d479 100755 --- a/scripts/live +++ b/scripts/live @@ -1693,38 +1693,29 @@ find_livefs () # first look at the one specified in the command line case "${LIVE_MEDIA}" in removable-usb) - for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)") + for sysblock in $(removable_usb_dev "sys") do - if [ "$(cat ${sysblock}/removable)" = "1" ] - then - if readlink ${sysblock} | grep -q usb + for dev in $(subdevices "${sysblock}") + do + if check_dev "${dev}" then - for dev in $(subdevices "${sysblock}") - do - if check_dev "${dev}" - then - return 0 - fi - done + return 0 fi - fi + done done return 1 ;; removable) - for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)") + for sysblock in $(removable_dev "sys") do - if [ "$(cat ${sysblock}/removable)" = "1" ] - then - for dev in $(subdevices "${sysblock}") - do - if check_dev "${dev}" - then - return 0 - fi - done - fi + for dev in $(subdevices "${sysblock}") + do + if check_dev "${dev}" + then + return 0 + fi + done done return 1 ;; @@ -1742,16 +1733,7 @@ find_livefs () # or do the scan of block devices # prefer removable devices over non-removable devices, so scan them first - for sysblock in $(echo /sys/block/* | tr ' ' '\n' | egrep -v "/(loop|ram|dm-|fd)") - do - if [ "$(cat ${sysblock}/removable)" = "1" ] - then - removable_devices_to_scan="$removable_devices_to_scan $sysblock" - else - nonremovable_devices_to_scan="$nonremovable_devices_to_scan $sysblock" - fi - done - devices_to_scan="$removable_devices_to_scan $nonremovable_devices_to_scan" + devices_to_scan="$(removable_dev 'sys') $(non_removable_dev 'sys')" for sysblock in $devices_to_scan do |
