diff options
Diffstat (limited to 'lib/find_devices.sh')
-rwxr-xr-x | lib/find_devices.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/find_devices.sh b/lib/find_devices.sh new file mode 100755 index 0000000..b371be0 --- /dev/null +++ b/lib/find_devices.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Copyright 2007-2009 Canonical Ltd. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + +for device in $(hal-find-by-capability --capability storage); do + VENDOR=$(hal-get-property --udi $device --key storage.vendor) + NAME=$(hal-get-property --udi $device --key storage.model) + PLUGGABLE=$(hal-get-property --udi $device --key storage.hotpluggable) + TYPE=$(hal-get-property --udi $device --key storage.drive_type) + DEVPATH=$(hal-get-property --udi $device --key block.device) + AVAIL=$(hal-get-property --udi $device --key storage.removable.media_available) + + if [ "${AVAIL}" = true ] && [ "${PLUGGABLE}" = true ] && \ + ( [ "${TYPE}" = "disk" ] || [ "${TYPE}" = "sd_mmc" ] ); then + VENDOR=${VENDOR:-"Unknown"} + NAME=${NAME:-"Unknown"} + echo "$VENDOR $NAME, $DEVPATH" + fi +done |