From 60052659b98832c78c902e4f27ecee2663d8e913 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Wed, 6 May 2026 08:30:49 +0200 Subject: Added scripts --- scripts/dmenu-unmount | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 scripts/dmenu-unmount (limited to 'scripts/dmenu-unmount') diff --git a/scripts/dmenu-unmount b/scripts/dmenu-unmount new file mode 100755 index 0000000..93c8186 --- /dev/null +++ b/scripts/dmenu-unmount @@ -0,0 +1,49 @@ +#!/bin/sh + +# Prompts selection for mounted devices and unmounts the selected one +# Requires: udevil, dmenu (or similar), notify-send or similar (optional) + +# Usage: dmenu-unmount [-m menu] [-w writer] +# Example: dmenu-unmount -m slmenu -w echo + +menu=dmenu +writeout=${NOTIFY:-"notify push"} + +usage() { + echo "Usage: dmenu-unmount [-m MENU] [-w WRITER]" + echo "Example: dmenu-unmount -m slmenu -w echo" +} + +while getopts "m:w:" opt; do + case "$opt" in + m) + menu="$OPTARG" + ;; + w) + writeout="$OPTARG" + ;; + *) + usage + exit 1 + ;; + esac +done +shift $((OPTIND - 1)) + +listdev=$(grep "media" /proc/mounts | sed 's/\/media.*\///g' | \ + awk '{print $1" ("$2")"}') + +if [ -z "$listdev" ]; then + $writeout "Nothing to unmount" +else + seldev=$(echo "$listdev" | $menu | awk '{print $1}') + if [ -n "$seldev" ]; then + udevil unmount "$seldev" + failed=$(udevil info "$seldev" | grep mounted | awk '{print $3}') + if [ "$failed" -eq 1 ]; then + $writeout "Unmount FAILED" "Device is still mounted!" + else + $writeout "Device unmounted" + fi + fi +fi -- cgit v1.3