mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
71 lines
1.3 KiB
Bash
71 lines
1.3 KiB
Bash
#!/bin/sh /etc/rc.common
|
|
|
|
START=90
|
|
STOP=10
|
|
|
|
USE_PROCD=1
|
|
PROG=/usr/bin/owsd
|
|
CONFIGFILE="/etc/config/owsd"
|
|
|
|
validate_owsd() {
|
|
uci_validate_section "owsd" "owsd" "global" \
|
|
'sock:string' \
|
|
'www:string'
|
|
}
|
|
|
|
append_origin() {
|
|
procd_append_param command -o "$1"
|
|
}
|
|
|
|
validate_owsd_iface() {
|
|
uci_validate_section "owsd" "owsd-listen" "$1" \
|
|
'port:port' \
|
|
'interface:string' \
|
|
'origin:list(string)' \
|
|
'cert:string' \
|
|
'key:string'
|
|
}
|
|
|
|
parse_owsd_iface() {
|
|
local port interface cert key
|
|
|
|
validate_owsd_iface "$1" || {
|
|
echo "Validation failed"
|
|
return 1
|
|
}
|
|
|
|
[ -n "${port}" ] && procd_append_param command -p "${port}"
|
|
[ -n "${interface}" ] && procd_append_param command -i "${interface}"
|
|
[ -n "${cert}" ] && procd_append_param command -c "${cert}"
|
|
[ -n "${key}" ] && procd_append_param command -k "${key}"
|
|
|
|
config_list_foreach "$1" "origin" append_origin
|
|
}
|
|
|
|
start_service() {
|
|
config_load owsd
|
|
procd_open_instance
|
|
procd_set_param command $PROG
|
|
|
|
local sock www
|
|
|
|
validate_owsd || {
|
|
echo "Global validation failed"
|
|
return 1
|
|
}
|
|
|
|
[ -n "${sock}" ] && procd_append_param command -s "${sock}"
|
|
[ -n "${www}" ] && procd_append_param command -w "${www}"
|
|
|
|
config_foreach parse_owsd_iface "owsd-listen"
|
|
|
|
# procd_set_param stderr 1
|
|
procd_set_param respawn
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service()
|
|
{
|
|
service_stop ${PROG}
|
|
}
|