# 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
;;
# 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
fi
}
+
+removable_dev ()
+{
+ output_format="${1}"
+ want_usb="${2}"
+ ret=
+
+ for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+ do
+ dev_ok=
+ if [ "$(cat ${sysblock}/removable)" = "1" ]
+ then
+ if [ -z "${want_usb}" ]
+ then
+ dev_ok="yes"
+ else
+ if readlink ${sysblock} | grep -q usb
+ then
+ dev_ok="yes"
+ fi
+ fi
+ fi
+
+ if [ "${dev_ok}" = "yes" ]
+ then
+ case "${output_format}" in
+ sys)
+ ret="${ret} ${sysblock}"
+ ;;
+ *)
+ devname=$(sys2dev "${sysblock}")
+ ret="${ret} ${devname}"
+ ;;
+ esac
+ fi
+ done
+
+ echo "${ret}"
+}
+
+removable_usb_dev ()
+{
+ output_format="${1}"
+
+ removable_dev "${output_format}" "want_usb"
+}
+
+non_removable_dev ()
+{
+ output_format="${1}"
+ ret=
+
+ for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -vE "/(loop|ram|dm-|fd)")
+ do
+ if [ "$(cat ${sysblock}/removable)" = "0" ]
+ then
+ case "${output_format}" in
+ sys)
+ ret="${ret} ${sysblock}"
+ ;;
+ *)
+ devname=$(sys2dev "${sysblock}")
+ ret="${ret} ${devname}"
+ ;;
+ esac
+ fi
+ done
+
+ echo "${ret}"
+}