diff options
Diffstat (limited to 'abs/core/udev/mount-usb')
-rw-r--r-- | abs/core/udev/mount-usb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/abs/core/udev/mount-usb b/abs/core/udev/mount-usb new file mode 100644 index 0000000..2d3b3f5 --- /dev/null +++ b/abs/core/udev/mount-usb @@ -0,0 +1,51 @@ +#!/bin/sh + + +DIR=/media +DEVICE=$2 +LABEL=`/lib/udev/vol_id -L /dev/$DEVICE` +FS=`/lib/udev/vol_id -t /dev/$DEVICE` + + +mount_device () { + if [ "$LABEL" == "" ]; + then + mkdir -p $DIR/usb-$DEVICE + case $FS in + vfat) /bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/$DEVICE $DIR/usb-$DEVICE + ;; + *) /bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/$DEVICE $DIR/usb-$DEVICE + ;; + esac + else + mkdir -p $DIR/$LABEL + echo $LABEL >$DIR/.$DEVICE + case $FS in + vfat) /bin/mount -t vfat -o rw,noauto,flush,quiet,nodev,nosuid,noexec,noatime,dmask=000,fmask=111 /dev/$DEVICE $DIR/$LABEL + ;; + *) /bin/mount -t auto -o rw,noauto,sync,dirsync,noexec,nodev,noatime /dev/$DEVICE $DIR/$LABEL + ;; + esac + fi +} + +umount_device () { + if [ -e $DIR/usb-$DEVICE ]; + then + umount -l $DIR/usb-$DEVICE + rmdir $DIR/usb-$DEVICE; + else + ULABEL=`cat $DIR/.$DEVICE` + umount -l $DIR/$ULABEL + rmdir $DIR/$ULABEL + rm $DIR/.$DEVICE; + fi +} + +case $1 in + mount) mount_device + ;; + umount) umount_device + ;; + *) echo "Usage: mount-usb mount/umount sdxY" +esac |