From 58dcb581233351df0d283428234be0ebb8336b8d Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Wed, 3 Jun 2020 00:33:53 +0200 Subject: bin: add mnts script --- bin/menu | 3 +-- bin/mnts | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100755 bin/mnts diff --git a/bin/menu b/bin/menu index 3b25776..9c8cec9 100755 --- a/bin/menu +++ b/bin/menu @@ -21,8 +21,7 @@ exec "${arg0}" \ --monitor=all \ --ignorecase \ --list=10 \ - --index \ - --prompt "${prompt}" \ + --prompt="${prompt}" \ --fn 'Iosevka Sparkle 11' \ --nb '#221E1D' --nf '#fffefe' \ --tb "$main_color" --tf '#fffefe' \ diff --git a/bin/mnts b/bin/mnts new file mode 100755 index 0000000..2673834 --- /dev/null +++ b/bin/mnts @@ -0,0 +1,28 @@ +#!/bin/sh +set -e +[ -n "$DEBUG" ] && set -x + +export MENU_PROMPT="mnts" + +filter='/(\/dev\/nvme0n1.*|\/dev\/mapper\/.*hibiki.*)/' + +{ lsblk -nrpo 'name,type,size,mountpoint' \ + | awk "{d=\$1} d~${filter}{next} length(\$4){next} length(d)>19{d=substr(d,1,27)\"...\"} {printf \"%-30s (%6s) %-5s\n\", d, \$3, \$4}"; \ + mount \ + | grep -v -E '(proc|tmpfs|devpts|sysfs|securityfs|debugfs|mqueue|configfs|fusectl|efivarfs|cgroup|binfmt_misc|nsfs|portal)' \ + | awk "{d=\$1} d~${filter}{next} {\"df -h --output=size \"\$3\" 2>/dev/null | sed -n 2p\" | getline s} length(d)>19{d=substr(d,1,27)\"...\"} {printf \"%-30s (%6s) %-5s\n\", d, s, \$3}"; \ +} \ + | menu \ + | xargs -i sh -c " \ + mode=\$(echo '{}' |awk '{if(length(\$3)<1) print \"mount\";else print \"unmount\";}'); \ + drv=\$(echo '{}' |cut -d' ' -f1); \ + path=\$(echo '{}' |tr -d '[:blank:]' |cut -d\) -f2); \ + case \$mode in \ + mount) udisksctl \${mode} -b \${drv} ;; \ + unmount) umount \${path} ;; \ + esac; \ + if [ \$? = 0 ]; then \ + notify-send mnts \"\${mode}ed \${drv}\"; \ + else \ + notify-send mnts \"\${mode}ing \${drv} failed\\n\${err}\"; \ + fi" -- cgit 1.4.1