dmenu-scripts/dmenu-usb-man
2023-11-04 22:03:43 +01:00

66 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# a simple dmenu usb managment script
load_config() {
. $HOME/.config/dmenu/config
}
driveCount() {
count="$(printf '%s\n' "$1" | wc -l)"
}
mount() {
mountable="$(lsblk -lp | awk '/^\/dev\/sd.*part $/ { print $1 " ("$4")" }')"
if [ "$mountable" = "" ]; then
quick-notify "$DMENU Usb Manager" "No drives to mount"
exit
fi
chosen="$(printf '%s' "$mountable" | $DMENU -p "Drive to mount?")"
if [ -n "$chosen" ]; then
udisksctl mount -b "${chosen%% *}"
quick-notify "Dmenu Usb Manager" "Drive ${chosen%% *} mounted"
else
quick-notify "Dmenu Usb Manager" "No drives chosen to mount"
exit
fi
}
unmount() {
mounted="$(lsblk -lp | awk '/run/ { print $1 " ("$4")" }')"
if [ "$mounted" = "" ]; then
quick-notify "Dmenu Usb Manager" "No drives to unmount"
exit
fi
chosen="$(printf "$mounted" | $DMENU -p "Drive to unmount?")"
if [ -n "$chosen" ]; then
udisksctl unmount -b "${chosen%% *}"
quick-notify "Dmenu Usb Manager" "Drive ${chosen%% *} unmounted"
else
quick-notify "Dmenu Usb Manager" "No drives chosen to unmount"
exit
fi
}
menu() {
case $(printf "mount\\nunmount" | $DMENU -p "Chose your usb action") in
"mount") mount ;;
"unmount") unmount ;;
esac
}
main() {
load_config
menu
}
main $@