Skip to content

Instantly share code, notes, and snippets.

@viq
Created December 31, 2013 19:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save viq/8201021 to your computer and use it in GitHub Desktop.
Save viq/8201021 to your computer and use it in GitHub Desktop.
#!/bin/bash
SDCARD=/dev/sdcard
DEF_UID=$(grep "^UID_MIN" /etc/login.defs | tr -s " " | cut -d " " -f2)
DEF_GID=$(grep "^GID_MIN" /etc/login.defs | tr -s " " | cut -d " " -f2)
DEVICEUSER=$(getent passwd $DEF_UID | sed 's/:.*//')
MNT=/run/user/$DEF_UID/media/sdcard
if [ "$ACTION" = "add" ]; then
if [ -b /dev/mmcblk1p1 ]; then
ln -sf /dev/mmcblk1p1 $SDCARD
ID_FS_TYPE=$(/bin/lsblk -no FSTYPE /dev/mmcblk1p1)
elif [ -b /dev/mmcblk1 ]; then
ln -sf /dev/mmcblk1 $SDCARD
ID_FS_TYPE=$(/bin/lsblk -no FSTYPE /dev/mmcblk1)
else
exit $?
fi
su $DEVICEUSER -c "mkdir -p $MNT"
case "${ID_FS_TYPE}" in
vfat|ntfs|exfat)
mount $SDCARD $MNT -o uid=$DEF_UID,gid=$DEF_GID
;;
*)
if [ ! -z "${ID_FS_TYPE}" ]; then
mount $SDCARD $MNT
chown $DEF_UID:$DEF_GID $MNT
fi
;;
esac
else
umount $SDCARD
if [ $? = 0 ]; then
rm -f $SDCARD
else
umount -l $MNT
rm -f $SDCARD
fi
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment