diff options
| author | Luke Smith <luke@lukesmith.xyz> | 2022-11-16 11:56:11 -0500 |
|---|---|---|
| committer | Luke Smith <luke@lukesmith.xyz> | 2022-11-16 11:56:11 -0500 |
| commit | fa600f8ca722da4dabc705e89b7c17de3035a3ae (patch) | |
| tree | a1928c23fa0a098559907e4a4e97211ba84194e5 /.local/bin/dmenuumount | |
| parent | cffb196a45eae216de234206dc2cb0083c1e4f96 (diff) | |
| download | eibhear-fa600f8ca722da4dabc705e89b7c17de3035a3ae.tar.gz eibhear-fa600f8ca722da4dabc705e89b7c17de3035a3ae.tar.zst eibhear-fa600f8ca722da4dabc705e89b7c17de3035a3ae.zip | |
fix #1233 and improve and cleanup mount scripts
Diffstat (limited to '.local/bin/dmenuumount')
| -rwxr-xr-x | .local/bin/dmenuumount | 49 |
1 files changed, 13 insertions, 36 deletions
diff --git a/.local/bin/dmenuumount b/.local/bin/dmenuumount index 946d12c..656d1f1 100755 --- a/.local/bin/dmenuumount +++ b/.local/bin/dmenuumount @@ -4,41 +4,18 @@ # Provides you with mounted partitions, select one to unmount. # Drives mounted at /, /boot and /home will not be options to unmount. -unmountusb() { - [ -z "$drives" ] && exit - chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 - chosen="$(echo "$chosen" | awk '{print $1}')" - [ -z "$chosen" ] && exit - sudo -A umount "$chosen" && notify-send "💻 USB unmounting" "$chosen unmounted." - } +drives="$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}'; awk '/simple-mtpfs/ { print "📱", $2; }' /etc/mtab)" -unmountandroid() { \ - chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | dmenu -i -p "Unmount which device?")" || exit 1 - [ -z "$chosen" ] && exit - sudo -A umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted." - } +chosen="$(echo "$drives" | dmenu -i -p "Unmount which drive?")" || exit 1 -asktype() { \ - choice="$(printf "USB\\nAndroid" | dmenu -i -p "Unmount a USB drive or Android device?")" || exit 1 - case "$choice" in - USB) unmountusb ;; - Android) unmountandroid ;; - esac - } - -drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}') - -if ! grep simple-mtpfs /etc/mtab; then - [ -z "$drives" ] && echo "No drives to unmount." && exit - echo "Unmountable USB drive detected." - unmountusb -else - if [ -z "$drives" ] - then - echo "Unmountable Android device detected." - unmountandroid - else - echo "Unmountable USB drive(s) and Android device(s) detected." - asktype - fi -fi +case "$chosen" in + 📱*) + chosen="${chosen#📱 }" + sudo -A umount -l "$chosen" + ;; + *) + chosen="${chosen% (*}" + sudo -A umount -l "$chosen" + ;; +esac && notify-send "🖥️ Drive unmounted." "$chosen successfully unmounted." || + notify-send "🖥️ Drive failed to unmount." "Possibly a permissions or I/O issue." |
