blob: d5d66d66fbd0f853b79325774595f6298d66393b [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#!/bin/sh
2MDEV_AUTOMOUNT=y
3MDEV_AUTOMOUNT_ROOT=/run/media
4[ -f /etc/default/mdev ] && . /etc/default/mdev
5if [ "${MDEV_AUTOMOUNT}" = "n" ] ; then
6 exit 0
7fi
8
9case "$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 ;;
63esac