blob: e42cc8bc908577c7c1ed89bb84b2fbaaa3c57718 (
plain)
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
29
30
31
32
33
34
35
36
37
38
|
#!/bin/sh
# NOTE: since mdev -s only provide $MDEV, don't depend on any hotplug vars.
current=$(readlink usbdisk)
if [ "${current}" = "${MDEV}" ] && [ "${ACTION}" = "remove" ]; then
rm -f usbdisk usba1
fi
[ -n "${current}" ] && exit
if [ -e /sys/block/"${MDEV}" ]; then
SYSDEV=$(readlink -f /sys/block/"${MDEV}"/device)
# if /sys device path contains '/usb[0-9]' then we assume its usb
# also, if it's a usb without partitions we require FAT
if [ "${SYSDEV##*/usb[0-9]}" != "${SYSDEV}" ]; then
# do not create link if there is not FAT
dd if=/dev/"${MDEV}" bs=512 count=1 2>/dev/null | strings | grep FAT >/dev/null || exit 0
ln -sf "${MDEV}" usbdisk
# keep this for compat. people have it in fstab
ln -sf "${MDEV}" usba1
fi
else
for i in /sys/block/*/"${MDEV}"; do
if [ -e "$i" ]; then
PARENT=$(dirname "$i")
SYSDEV=$(readlink -f "${PARENT}"/device)
if [ "${SYSDEV##*/usb[0-9]}" != "${SYSDEV}" ]; then
ln -sf "${MDEV}" usbdisk
# keep this for compat. people have it in fstab
ln -sf "${MDEV}" usba1
fi
fi
done
fi
|