summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/common/aumount24
1 files changed, 20 insertions, 4 deletions
diff --git a/bin/common/aumount b/bin/common/aumount
index f7f1ecb..19b33e0 100755
--- a/bin/common/aumount
+++ b/bin/common/aumount
@@ -19,11 +19,16 @@ read_char ()
die ""
}
+get_dev ()
+{
+ grep "^$1\." "$tmp" | cut -f 2- -d ' '
+}
+
# mount the device with $1 as the choice
mount ()
{
- dev="$(grep "^$1\." "$tmp" | cut -f 2- -d ' ')"
- test -z "$dev" && exit
+ dev="$(get_dev "$1")"
+ test -z "$dev" && exit 1
die "Mounting /dev/$dev on /media/$dev"
mkdir -p /media/$dev
@@ -34,7 +39,6 @@ mount ()
# umount the device with $1 as the choice
umount ()
{
- printf "$1" | grep -q "[0-9]" || exit 1
mountpoint="$(sed -n "${1}p" "$tmp" |
awk '{print $3}')"
test -z "$mountpoint" && exit 1
@@ -44,6 +48,16 @@ umount ()
return 1
}
+ejekt ()
+{
+ dev="$(get_dev "$1" | sed 's/.$//')"
+ test -z "$dev" && exit 1
+
+ die "Ejecting /dev/$dev"
+ $sudo eject /dev/$dev > /dev/null 2>&1 ||
+ return 1
+}
+
# print lsblk, use $1 to print only devices with mountpoints or without
pr_lsblk ()
{
@@ -70,17 +84,19 @@ cleanup ()
trap cleanup EXIT INT
-die "m(ount) u(mount) ?"
+die "m(ount) u(mount) (e)ject ?"
choice="$(read_char)"
case $choice in
"m") i=2; cmd=mount ;;
"u") i=1; cmd=umount ;;
+ "e") i=2; cmd=ejekt ;;
*) exit 1 ;;
esac
pr_lsblk $i
choice="$(read_char)"
+printf "$choice" | grep -q "[0-9]" || exit 1
$cmd $choice &&
die "Successful." ||
die "Failed."