#! @bash@/bin/sh -e

## Generic service scripts for NixOS, which provide
## * functions to write state to files (/var/run/nix-services)
## * functions to read state from file (/var/run/nix-services)
## * sanity checking functions

STATEDIR=/var/run/nix-services
RCDIR=/etc/rc.d/

## resolve $deps to real start/stop scripts first

start_deps() {
	for i in $deps; do
		$i start
		RETVAL=$?
		if test $RETVAL != 0; then
			exit $RETVAL	
		fi
	done
}

start_softdeps() {
	for i in $softdeps; do
		$i start
		RETVAL=$?
		if test $RETVAL != 0; then
			continue
		fi
	done
}

start() {
	# are we already running?
	# if so, exit with code 0
	if test -a $STATDIR/$prog; then
		exit 0
	fi
	# if not, continue
	# launch all hard dependencies
	#start_deps
	# launch all preferred dependencies
	#start_softdeps
	# launch our own program
}

stop() {
	# are we running? If so, then stop, otherwise, do nothing...
	if test -a $STATDIR/$prog = 0; then
		exit 0
	fi
	# stop our own program
}

register() {
	touch $STATEDIR/$prog
}

unregister() {
	rm $STATEDIR/$prog
}

status() {
	# are we running? If so, report
	if test -a $STATDIR/$prog; then
		echo "running"
	else
		echo "stopped"
	fi
}
