blob: b4385a157f2ad39f3da7fc8d284347bcd0317c8a [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`
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050018 if [ "${DEVBASE}" = "mmc" ] ; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -050019 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
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050027 if [ "${DEVBASE}" = "${MDEV}" ] ; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -050028 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
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050036 if [ "`cat /sys/block/${DEVBASE}/size`" = "0" ] ; then
Patrick Williamsc124f4f2015-09-15 14:41:29 -050037 # 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"
Patrick Williamsd8c66bc2016-06-20 12:57:21 -050045 mkdir -p "$MOUNTPOINT"
Patrick Williamsc124f4f2015-09-15 14:41:29 -050046 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