(alpha version)
This commit is contained in:
parent
6cf76dbead
commit
d7d28134ad
|
@ -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
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue