#!/bin/sh
#
# set appropriate values for tuxonice

. "${PM_FUNCTIONS}"

TUXONICE_SYSDIR="/sys/power/tuxonice"
TUXONICE_CONFIG="/etc/hibernate/suspend2.conf"

tuxonice_set_sys_values()
{
	[ "$SLEEP_MODULE" = "tuxonice" ] || return $NA
	[ -d "$TUXONICE_SYSDIR" ] || return $NA
	[ -f "$TUXONICE_CONFIG" ] || return $NA

	# first set some defaults
	echo "/sbin/tuxoniceui_text" > ${TUXONICE_SYSDIR}/user_interface/program
	echo 1 > ${TUXONICE_SYSDIR}/user_interface/enabled

	# now parse the hibernate config to set some important values
	local KEY ARG1 ARG2
	while read KEY ARG1 ARG2; do
		case "$KEY" in
			Compressor)
				echo "TOI: using compressor $ARG1"
				echo "$ARG1" > ${TUXONICE_SYSDIR}/compression/algorithm
				echo 1 > ${TUXONICE_SYSDIR}/compression/enabled
				;;
			PowerdownMethod)
				echo "TOI: using powerdown method $ARG1"
				echo "$ARG1" > ${TUXONICE_SYSDIR}/powerdown_method
				;;
			ProcSetting)
				if [ "x${ARG1}" = "xuserui_program" ]; then
					ARG1="user_interface/program"
				fi
				if [ -e ${TUXONICE_SYSDIR}/${ARG1} ]; then
					echo "TOI: setting $ARG1 to $ARG2"
					echo "$ARG2" > ${TUXONICE_SYSDIR}/${ARG1}
				else
					echo "TOI: cannot set sysvalue $ARG1"
				fi
				;;
			DefaultConsoleLevel)
				echo "TOI: setting console level to $ARG1"
				echo "$ARG1" > ${TUXONICE_SYSDIR}/user_interface/default_console_level
				;;
			EnableEscape)
				if [ "x$ARG1" = "xyes" ]; then
					echo "TOI: enabling escape"
					echo 1 > ${TUXONICE_SYSDIR}/user_interface/enable_escape
				else
					echo "TOI: disabling escape"
					echo 0 > ${TUXONICE_SYSDIR}/user_interface/enable_escape
				fi
				;;
			ImageSizeLimit)
				echo "TOI: setting image size limit to $ARG1"
				echo "ARG1" > ${TUXONICE_SYSDIR}/image_size_limit
				;;
			Encryptor)
				if [ "x$ARG1" != "xnone" ]; then
					echo "TOI: Encryptor $ARG1 currently not available"
				fi
				;;
		esac
	done < "$TUXONICE_CONFIG"
}

case "$1" in
	hibernate|suspend|thaw)
		tuxonice_set_sys_values
		;;
esac

