#!/sbin/runscript
# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Id$

depend() {
	need net
}

start() {
	ebegin "Starting CDWserver"
        for tool in cdrdao cdrecord mkisofs readcd
        do
            if [ -e /usr/bin/$tool ]
            then
                cp /usr/bin/$tool /var/CDWserver/bin
            fi
        done
	start-stop-daemon --start --quiet --pidfile /var/run/CDWserver.pid \
		--exec /usr/sbin/CDWserver
	eend $?
	touch /var/lock/subsys/CDWserver
}

stop() {
	ebegin "Stopping CDWserver"
	start-stop-daemon --stop --quiet --pidfile /var/run/CDWserver.pid
	eend $?
	rm -f /var/lock/subsys/CDWserver
}
