summaryrefslogtreecommitdiff
path: root/scripts/umount-usb.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/umount-usb.sh')
-rwxr-xr-xscripts/umount-usb.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/scripts/umount-usb.sh b/scripts/umount-usb.sh
new file mode 100755
index 0000000..e745ef2
--- /dev/null
+++ b/scripts/umount-usb.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+lsblkoutput="$(lsblk -nrpo "name,type,size,mountpoint")"
+mounteddrives="$(echo "$lsblkoutput" | awk '($2=="part"||$2="crypt")&&$4!~/\/boot|\/home$|SWAP/&&length($4)>1{printf "%s (%s)\n",$4,$3}')"
+
+allunmountable="$(echo "$mounteddrives" | sed "/^$/d;s/ *$//")"
+test -n "$allunmountable"
+
+chosen="$(echo "$allunmountable" | rofi -dmenu -p "Unmount which drive?")"
+chosen="${chosen%% *}"
+test -n "$chosen"
+
+sudo umount -l "/${chosen#*/}"
+notify-send "💾 Device unmounted." "$chosen has been unmounted"
+
+cryptid="$(echo "$lsblkoutput" | grep "/${chosen#*/}$")"
+cryptid="${cryptid%% *}"
+test -b /dev/mapper/"${cryptid##*/}"
+sudo cryptsetup close "$cryptid"
+notify-send "🔒 Device dencryption closed." "Drive is now securely locked again."