#!/bin/sh

# tmount - toggle mount / eject
#
# usage: tmount mountpoint ejectable
#
# parameter mountpoint: the mount point, without trailing '/'
#           ejectable:  not empty indicates that the media is software ejectable
# action: if the indicated file system is not mounted, mounts it
#         otherwise unmounts it
# if mounting fails or when unmounting, ejects software ejectable
# media.

if [ "$2" == "" ]; then eject=echo
else eject=eject
fi

mountpointIndicated=$1
mountpointFound=`df $1 | tail -1 | cut -d% -f2`

if [ $mountpointIndicated = $mountpointFound ]
    then

    umount $mountpointIndicated 
    $eject $mountpointIndicated

else

    # my smartmedia does not mount correctly after a media change
    # second try always succeeds.  ask me why!  if neither mount
    # attempt succeeds, then attempt ejecting ejectable media

    mount $mountpointIndicated || mount $mountpointIndicated || $eject $mountpointIndicated

fi
