From 47c9811c7af21714898d9916922353745b90f585 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Mon, 26 Oct 2020 20:06:25 -0400 Subject: usb.sh --- src/usb.sh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 src/usb.sh diff --git a/src/usb.sh b/src/usb.sh new file mode 100755 index 0000000..cd80d8f --- /dev/null +++ b/src/usb.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +die() { printf "%s: Error: %s\n" "$0" "$*" >&2; exit 1; } + +whole_device() +{ + case "$1" in + *-part?) false ;; + *-part??) false ;; + *-part???) false ;; + */usb\*) false ;; + *) true ;; + esac +} + +confirm_usb() +{ + local msg="This will completely overwrite device:\n\n\t%s\n\nType 'yes' to confirm.\nContinue? " + printf "$msg" "$1" >&2 + read line + case "$line" in + [yY][eE][sS]) return ;; + *) die "Aborted by user." ;; + esac +} + +choose_usb() +{ + local devs maj + set -- /dev/disk/by-id/usb* + for dev; do + shift + whole_device "$dev" || continue + set -- "$@" "$dev" + done + if [ $# = 0 ]; then + die "no usb device found" + elif [ $# = 1 ]; then + confirm_usb "$1" || die impossible + USB="$1" + else + die "multiple USB devices connected and choice between them is unimplemented. ($*)" + fi +} + +choose_cdrom() +{ + die 'choose_cdrom: unimplemented; specify cdrom device with --out' +} + +choose_usb +echo USB=$USB + -- cgit v1.2.3