#!/bin/bash

DEBUG=n

# tmpfs dirs parent dir
VARDISK=/usr/local/vartmp




function debug() {
	if [[ $# -gt 1 && $DEBUG == "y" ]]
	then
		echo $2
		$1
	elif [[ $DEBUG == "y" ]]
	then
echo wat
		echo $1
	else
		$1
	fi
}
test `id -u` != "0" && DEBUG=y
dbg=debug
VARDISK=${VARDISK%%/}
VARTEMP=/dev/shm/var

if [[ -z ${VARDISK} || ! -d ${VARDISK} || "`echo ${VARDISK}/*`" == ${VARDISK}/\* ]]
then
	$dbg "exit 1" "config error."
fi

case "$1" in
  start)
        $dbg "log_daemon_msg 'Migrating some of /var to tmpfs'"
	$dbg "mkdir ${VARTEMP}"
	for d in ${VARDISK}/*
	do
		d=${d##${VARDISK}/}
		d=${d##\*}
		if [[ -z ${d} || ! -d /var/${d} ]]
		then
			continue
		fi
		$dbg "cp -a ${VARDISK}/${d} ${VARTEMP}/${d}"
		$dbg "mount --bind ${VARTEMP}/${d} /var/${d}"
	done
   	$dbg "log_end_msg $?"
	;;

  stop)
        $dbg "log_daemon_msg 'Purging tmpfs-migrated parts of /var'"
	for d in ${VARDISK}/*
	do
		d=${d##${VARDISK}/}
		d=${d##\*}
		if [[ -z $d ]]
		then
			continue
		fi
		if grep -qs /var/${d} /proc/mounts; then
			$dbg "umount /var/${d}"
		fi
	done
	$dbg "rm -rf ${VARTEMP}"
   	$dbg "log_end_msg $?"
	;;

	
  restart)
        $0 stop
        $0 start
        ;;
  *)
       echo "Usage: $0 {start|stop|restart}"
esac
