| #!/bin/sh |
| MDEV_AUTOMOUNT=y |
| MDEV_AUTOMOUNT_ROOT=/run/media |
| [ -f /etc/default/mdev ] && . /etc/default/mdev |
| if [ "${MDEV_AUTOMOUNT}" = "n" ] ; then |
| exit 0 |
| fi |
| |
| case "$ACTION" in |
| add|"") |
| ACTION="add" |
| # check if already mounted |
| if grep -q "^/dev/${MDEV} " /proc/mounts ; then |
| # Already mounted |
| exit 0 |
| fi |
| DEVBASE=`expr substr $MDEV 1 3` |
| if [ "${DEVBASE}" = "mmc" ] ; then |
| DEVBASE=`expr substr $MDEV 1 7` |
| fi |
| # check for "please don't mount it" file |
| if [ -f "/dev/nomount.${DEVBASE}" ] ; then |
| # blocked |
| exit 0 |
| fi |
| # check for full-disk partition |
| if [ "${DEVBASE}" = "${MDEV}" ] ; then |
| if [ -f /sys/block/${DEVBASE}/${DEVBASE}*1/partition ] ; then |
| # Partition detected, just quit |
| exit 0 |
| fi |
| if [ ! -f /sys/block/${DEVBASE}/size ] ; then |
| # No size at all |
| exit 0 |
| fi |
| if [ "`cat /sys/block/${DEVBASE}/size`" = "0" ] ; then |
| # empty device, bail out |
| exit 0 |
| fi |
| fi |
| # first allow fstab to determine the mountpoint |
| if ! mount /dev/$MDEV > /dev/null 2>&1 |
| then |
| MOUNTPOINT="${MDEV_AUTOMOUNT_ROOT}/$MDEV" |
| mkdir -p "$MOUNTPOINT" |
| mount -t auto /dev/$MDEV "$MOUNTPOINT" || rmdir "$MOUNTPOINT" |
| fi |
| ;; |
| remove) |
| MOUNTPOINT=`grep "^/dev/$MDEV\s" /proc/mounts | cut -d' ' -f 2` |
| if [ ! -z "$MOUNTPOINT" ] |
| then |
| umount "$MOUNTPOINT" |
| rmdir "$MOUNTPOINT" |
| else |
| umount /dev/$MDEV |
| fi |
| ;; |
| *) |
| # Unexpected keyword |
| exit 1 |
| ;; |
| esac |