(alpha version)

This commit is contained in:
#root_informatica 2024-04-24 16:00:26 -03:00
parent 6cf76dbead
commit d7d28134ad
1 changed files with 78 additions and 0 deletions

78
usblink.sh Executable file
View File

@ -0,0 +1,78 @@
#!/bin/sh
## mount and umount partitions a little less than "by hand". ##
# usbman.sh by @root_informatica
FLAG=$1
usage() {
cat<<EOF
usage:
usblink.sh [ -m, -u ]
-m) mount partitions.
-u) umount partitions.
EOF
}
# list removable usb devices.
removable_list() {
usb_keys=($(
grep -Hv ^0$ /sys/block/*/removable |
sed s/removable:.*$/device\\/uevent/ |
xargs grep -H ^DRIVER=sd |
sed s/device.uevent.*$/size/ |
xargs grep -Hv ^0$ |
cut -d / -f 4
))
for dev in ${usb_keys[@]} ;do
echo $dev \"$(
sed -e s/\ *$//g </sys/block/$dev/device/model
)\" ;
done
}
# partitions in.
link_up() {
d_target=$(removable_list | fzy | cut -c 1-3)
for p in $(lsblk -l -n -o NAME /dev/$d_target | grep "[[:alnum:]]\{4\}"); do
if [ -d "/tmp/$p" ]; then
echo "the directory /tmp/$p already exists!"
else
mkdir /tmp/$p
fi
m_check=$(grep -w "$p" < /proc/mounts | cut -d ' ' -f2)
if [ -n "$m_check" ]; then
echo "the partition $p is already mounted on $m_check"
else
doas mount /dev/$p /tmp/$p
echo "$p mounted on /tmp/$p"
fi
done
}
# partitions out.
link_down() {
d_target=$(removable_list | fzy | cut -c 1-3)
for p in $(lsblk -l -n -o NAME /dev/$d_target | grep "[[:alnum:]]\{4\}"); do
doas umount /dev/$p
rm -r /tmp/$p
done
}
case $FLAG in
-m) # mount partitions.
link_up
;;
-u) # umount partitions.
link_down
;;
*)
usage
;;
esac