diff options
Diffstat (limited to 'meta/recipes-core/busybox/files/mdev-mount.sh')
-rw-r--r-- | meta/recipes-core/busybox/files/mdev-mount.sh | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/files/mdev-mount.sh b/meta/recipes-core/busybox/files/mdev-mount.sh new file mode 100644 index 0000000000..d5d66d66fb --- /dev/null +++ b/meta/recipes-core/busybox/files/mdev-mount.sh | |||
@@ -0,0 +1,63 @@ | |||
1 | #!/bin/sh | ||
2 | MDEV_AUTOMOUNT=y | ||
3 | MDEV_AUTOMOUNT_ROOT=/run/media | ||
4 | [ -f /etc/default/mdev ] && . /etc/default/mdev | ||
5 | if [ "${MDEV_AUTOMOUNT}" = "n" ] ; then | ||
6 | exit 0 | ||
7 | fi | ||
8 | |||
9 | case "$ACTION" in | ||
10 | add|"") | ||
11 | ACTION="add" | ||
12 | # check if already mounted | ||
13 | if grep -q "^/dev/${MDEV} " /proc/mounts ; then | ||
14 | # Already mounted | ||
15 | exit 0 | ||
16 | fi | ||
17 | DEVBASE=`expr substr $MDEV 1 3` | ||
18 | if [ "${DEVBASE}" == "mmc" ] ; then | ||
19 | DEVBASE=`expr substr $MDEV 1 7` | ||
20 | fi | ||
21 | # check for "please don't mount it" file | ||
22 | if [ -f "/dev/nomount.${DEVBASE}" ] ; then | ||
23 | # blocked | ||
24 | exit 0 | ||
25 | fi | ||
26 | # check for full-disk partition | ||
27 | if [ "${DEVBASE}" == "${MDEV}" ] ; then | ||
28 | if [ -d /sys/block/${DEVBASE}/${DEVBASE}*1 ] ; then | ||
29 | # Partition detected, just quit | ||
30 | exit 0 | ||
31 | fi | ||
32 | if [ ! -f /sys/block/${DEVBASE}/size ] ; then | ||
33 | # No size at all | ||
34 | exit 0 | ||
35 | fi | ||
36 | if [ `cat /sys/block/${DEVBASE}/size` == 0 ] ; then | ||
37 | # empty device, bail out | ||
38 | exit 0 | ||
39 | fi | ||
40 | fi | ||
41 | # first allow fstab to determine the mountpoint | ||
42 | if ! mount /dev/$MDEV > /dev/null 2>&1 | ||
43 | then | ||
44 | MOUNTPOINT="${MDEV_AUTOMOUNT_ROOT}/$MDEV" | ||
45 | mkdir "$MOUNTPOINT" | ||
46 | mount -t auto /dev/$MDEV "$MOUNTPOINT" | ||
47 | fi | ||
48 | ;; | ||
49 | remove) | ||
50 | MOUNTPOINT=`grep "^/dev/$MDEV\s" /proc/mounts | cut -d' ' -f 2` | ||
51 | if [ ! -z "$MOUNTPOINT" ] | ||
52 | then | ||
53 | umount "$MOUNTPOINT" | ||
54 | rmdir "$MOUNTPOINT" | ||
55 | else | ||
56 | umount /dev/$MDEV | ||
57 | fi | ||
58 | ;; | ||
59 | *) | ||
60 | # Unexpected keyword | ||
61 | exit 1 | ||
62 | ;; | ||
63 | esac | ||