#!/bin/sh
### BEGIN INIT INFO
# Provides:          ltsp_local_mount
# Required-Start:    $local_fs
# Required-Stop:     
# Should-Start:      ltsp-client-setup
# X-Start-Before:    $x-display-manager
# Default-Start:     3
# Default-Stop:      
# Short-Description: Make local devices (u)mountable by user
# Description:       Takes care, that /etc/mtab is writeable, so that
#                    users can mount and umount local and static devices
#                    like cdroms.
### END INIT INFO

case "$1" in
    start)
	. /usr/share/ltsp/ltsp-init-common
	test -z "$tmpfs_dir" && tmpfs_dir=/var/lib/ltsp-client-setup

        # make /etc writeable
	cd $tmpfs_dir

	# Ignore .git used by etckeeper
	tar --exclude etc/.git* -cpf - /etc 2> /dev/null | tar xpf -

	# Remove mount points that will be hidden by the new bind
	# mount of /etc/
	for f in $(awk '/\/etc\// { print $2}' /proc/mounts | \
	    sed 's/\\040.*$//') ; do
	    umount $f
	done

	mount --bind $tmpfs_dir/etc /etc
        # create writeable mtab
	if [ -h /etc/mtab ]; then
	    rm /etc/mtab && cp /proc/mounts /etc/mtab
	fi
        # create cdrom entry in fstab and mountpoint under /media
	if [ -b /dev/cdrom ]; then
	    echo "/dev/cdrom /media/cdrom0 udf,iso9660 user,auto 0 0" >>/etc/fstab
	    mkdir /media/cdrom0 && ln -s /media/cdrom0 /media/cdrom
	fi
	if [ -b /dev/cdrom?* ]; then
	    for CDDEV in $(ls /dev/cdrom?*); do
		echo "/dev/${CDDEV} /media/${CDDEV} udf,iso9660 user,auto 0 0" >>/etc/fstab
		mkdir /media/${CDDEV}
	    done
	fi
	;;
    *) exit 0 ;;
esac

exit 0
