#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2011 OpenWrt.org
# Copyright (C) 2010 Alexander Sulfrian

START=50
STOP=50

SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
SERVICE_PID_FILE="/var/run/deluged.pid"

error() {
	echo "${initscript}:" "$@" 1>&2
}

section_enabled() {
	config_get_bool enabled "$1" 'enabled' 0
	[ $enabled -gt 0 ]
}

start_instance() {
	local s="$1"

	section_enabled "$s" || return 1

	config_get uid "$s" 'user'
	[ -n "$uid" ] || {
		error "user is not set"
		return 1
	}
	user_exists $uid || {
		error "user '$uid' dos not exist"
		return 1
	}

	config_get gid "$s" 'group'
	[ -n "$gid" ] || {
		error "group is not set"
		return 1
	}
	group_exists $gid || {
		error "group '$gid' dos not exist"
		return 1
	}

	config_get home "$s" 'home'
	[ -n "$home" ] || {
		home=$(grep "^${user}:" /etc/passwd | cut -d ':' -f 6)
	fi
	[ -d "$home" ] || {
		error "home directory '$home' for user '$uid' dos not exist"
		return 1
	}

	config_get options "$s" 'options'

	HOME="$home" \
	SERVICE_UID="$uid" \
	SERVICE_GID="$gid" \
	service_start /usr/bin/python2.6 /usr/bin/deluged --do-not-daemonize $options
}

stop_instance() {
	local s="$1"

	section_enabled "$s" || return 1

	config_get uid "$s" 'user'
	config_get gid "$s" 'group'

	SERVICE_UID="$uid" \
	SERVICE_GID="$gid" \
	service_stop /usr/bin/python2.6
}

start()
{
	config_load 'deluged'
	config_foreach start_instance 'deluged'
}

stop()
{
	config_load 'deluged'
	config_foreach stop_instance 'deluged'
}