1
0
mirror of https://github.com/alrayyes/dotfiles/ synced 2023-11-14 15:56:30 +00:00
dotfiles/private_dot_config/polybar/bin/executable_system-usb-udev

91 lines
2.3 KiB
Plaintext
Raw Normal View History

2020-03-11 22:46:34 +00:00
#!/bin/sh
usb_print() {
2021-03-13 14:33:38 +00:00
devices=$(lsblk -Jplno NAME,TYPE,RM,SIZE,MOUNTPOINT,VENDOR)
output=""
counter=0
for unmounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint == null) | .name'); do
unmounted=$(echo "$unmounted" | tr -d "[:digit:]")
unmounted=$(echo "$devices" | jq -r '.blockdevices[] | select(.name == "'"$unmounted"'") | .vendor')
unmounted=$(echo "$unmounted" | tr -d ' ')
if [ $counter -eq 0 ]; then
space=""
else
space=" "
fi
counter=$((counter + 1))
output="$output$space $unmounted"
done
for mounted in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .size'); do
if [ $counter -eq 0 ]; then
space=""
else
space=" "
fi
counter=$((counter + 1))
output="$output$space $mounted"
done
if [ "$output" ]; then
notify-send.py "USB" "$output" \
-i drive-removable-media-usb \
--replaces-process "usb-mount" &
fi
echo "$output"
2020-03-11 22:46:34 +00:00
}
usb_update() {
2021-03-13 14:33:38 +00:00
pid=$(cat "$path_pid")
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
if [ "$pid" != "" ]; then
kill -10 "$pid"
fi
2020-03-11 22:46:34 +00:00
}
path_pid="/tmp/polybar-system-usb-udev.pid"
case "$1" in
--update)
2021-03-13 14:33:38 +00:00
usb_update
;;
2020-03-11 22:46:34 +00:00
--mount)
2021-03-13 14:33:38 +00:00
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
for mount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint == null) | .name'); do
mountpoint=$(udisksctl mount --no-user-interaction -b "$mount")
mountpoint=$(echo "$mountpoint" | cut -d " " -f 4 | tr -d ".")
alacritty --class lf,lf -e lf "$mountpoint" &
done
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
usb_update
;;
2020-03-11 22:46:34 +00:00
--unmount)
2021-03-13 14:33:38 +00:00
devices=$(lsblk -Jplno NAME,TYPE,RM,MOUNTPOINT)
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
for unmount in $(echo "$devices" | jq -r '.blockdevices[] | select(.type == "part") | select(.rm == true) | select(.mountpoint != null) | .name'); do
udisksctl unmount --no-user-interaction -b "$unmount"
udisksctl power-off --no-user-interaction -b "$unmount"
done
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
usb_update
;;
2020-03-11 22:46:34 +00:00
*)
2021-03-13 14:33:38 +00:00
echo $$ >$path_pid
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
trap exit INT
trap "echo" USR1
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
while true; do
usb_print
2020-03-11 22:46:34 +00:00
2021-03-13 14:33:38 +00:00
sleep 60 &
wait
done
;;
2020-03-11 22:46:34 +00:00
esac