summaryrefslogtreecommitdiff
path: root/scripts/live
diff options
context:
space:
mode:
authorTails developers <amnesia@boum.org>2010-11-01 18:23:05 +0100
committerTails developers <amnesia@boum.org>2011-09-07 14:53:41 +0200
commit3f02456e392ead3abf36bc181692fcb75c8f16f3 (patch)
tree46f6f223f2846b9fba18e905fa44b7d6e8fdae93 /scripts/live
parent209828c38d8af6fa2eab68cd668ca9109261f249 (diff)
downloadlive-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-xscripts/live48
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