#! /bin/sh
# /etc/init.d/ramdisk: starts temporary ramdisk
#
# written by Skudlik <skudlik@mail.klfree.net>

### BEGIN INIT INFO
# Provides:          ramdisk
# Required-Start:    mountkernfs mountall $local_fs
# Required-Stop:
# Should-Start:      udev module-init-tools
# Default-Start:     S
# Default-Stop:
# Short-Description: Starts ramdisk for /etc and /var/
# Description:  Starts ramdisk
### END INIT INFO

PATH=/sbin:/bin:/usr/bin/

RSYNC=/usr/bin/rsync

test -x $RSYNC || exit 0

. /lib/lsb/init-functions

# Check for existance of the default file and exit if not there,
if [ -f /etc/default/rcS ] ; then
  . /etc/default/rcS
fi

set -e

case "$1" in
	start|restart|force-reload|reload)
		log_action_begin_msg "Starting ramdisk "
		STATUS=0
		mkdir -p /mnt/ramdisk/var || STATUS=$?
		mkdir -p /mnt/ramdisk/etc || STATUS=$?

		$RSYNC -aAqHSX /var/ /mnt/ramdisk/var/ || STATUS=$?
		mount -o bind /mnt/ramdisk/var/ /var/ || STATUS=$?

		$RSYNC -aAqHSX /etc/ /mnt/ramdisk/etc/ || STATUS=$?
		mount -o bind /mnt/ramdisk/etc/ /etc/ || STATUS=$?

		mount -o bind,remount,ro /etc

		log_action_end_msg $STATUS
		;;
	stop)
		;;
    status)
        ;;
	*)
		echo "Usage: /etc/init.d/ramdisk {start|stop|restart|reload|force-reload|status}" >&2
		exit 3
		;;
esac

exit 0
