#!/bin/sh

set -e

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

if [ "$(id -u)" != "0" -a "$1" != "--help" -a "$1" != "help" -a ! -z "$1" ]; then
    echo "$0: To $1 ALSA, you must be root."
    exit 1
fi

# Default settings
alsactl_store_on_shutdown="autosave always"
runlevels_save='[2-5]'

[ -e /etc/default/alsa ] && . /etc/default/alsa

case "$1" in
    start)
	printf "Restoring ALSA mixer settings ... "
	if alsactl restore > /dev/null 2>&1; then
	    echo "done."
	else
	    echo "failed:"
	    echo "       You may want to run 'alsactl restore' manually to view any errors."
	    exit 1
	fi
	;;
    stop)
	if [ "$alsactl_store_on_shutdown" != "never autosave" ]; then
	    if runlevel | grep -E "^$runlevels_save " > /dev/null 2>&1 \
	    || runlevel | grep -E " $runlevels_save\$" > /dev/null 2>&1; then
		printf "Storing ALSA mixer settings ... "
		if alsactl store > /dev/null 2>&1; then
		    sleep 1
		    echo "done."
		else
		    echo "failed"
		fi
	    fi
	fi
	;;
    restart|reload)
	$0 stop && $0 start
	;;
    *)
	echo "Usage: /etc/init.d/alsa {start|stop|restart|reload}"
	exit 1
	;;
esac
