#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=50
STOP=20

SERVICE_DAEMONIZE=1
SERVICE_PID_FILE=/var/run/u2pnpd.pid
SERVICE_USE_PID=1
SERVICE_WRITE_PID=1

start_instance() {
	local section="$1"
	local enabled
	local interface manufacturer manufacturerURL modelDescription
	local modelName modelNumber modelURL serialNumber friendlyName
	local uuid httpsURL
	local i

	config_get_bool enabled "$section" 'enabled' 1
	[ "$enabled" -gt 0 ] || return 0

	for i in interface httpsURL manufacturer manufacturerURL modelDescription \
	         modelName modelNumber modelURL serialNumber friendlyName uuid; do
		config_get "$i" "$section" "$i"
	done

	[ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"

	service_start /usr/bin/u2pnpd ${httpsURL:+-s} \
	    ${interface:+--interface="$interface"} \
	    ${manufacturer:+--manufacturer="$manufacturer"} \
	    ${manufacturerURL:+--manufacturerURL="$manufacturerURL"} \
	    ${modelDescription:+--modelDescription="$modelDescription"} \
	    ${modelName:+--modelName="$modelName"} \
	    ${modelNumber:+--modelNumber="$modelNumber"} \
	    ${modelURL:+--modelURL="$modelURL"} \
	    ${serialNumber:+--serialNumber="$serialNumber"} \
	    ${friendlyName:+--friendlyName="$friendlyName"} \
	    ${uuid:+--uuid="$uuid"}
}

stop_instance() {
	local section="$1"
	local interface

	config_get interface "$section" 'interface'
	[ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"

	service_stop /usr/bin/u2pnpd
	rm -f "$SERVICE_PID_FILE"
}

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

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