#!/bin/sh
# $Id: isomount,v 1.1 2011/07/28 23:39:31 friedman Exp $

# Usage: isomount foo.iso /cdrom
#        isomount -u /cdrom

# Use "lofiadm" to show all allocated units.
# Use "lofiadm /dev/lofi/#n" to show file attached to unit #n.

do_mount()
{
  file=$1
  mntpoint=$2

  dev=`lofiadm -a "$file"`
  mount -F hsfs -o ro "$dev" "$mntpoint"
}

get_mount_device()
{
  mount \
   | while read mntpoint on dev rest ; do
       case $mntpoint in
         $1 ) echo $dev ; return 0 ;;
       esac
     done
  return 1
}

do_umount()
{
  dev=`get_mount_device "$1"`
  umount "$1" && lofiadm -d "$dev"
}

main()
{
  case $1 in
    -u ) shift
         do_umount "$@" ;;
    *  ) do_mount  "$@" ;;
  esac
}

main "$@"

# eof
