blob: 267383416fd71eb2ad376c7e68496c0dd5a947c4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"
|