validate_section_gpsd()
{
- uci_validate_section gpsd gpsd "${1}" \
+ uci_load_validate gpsd gpsd "$1" "$2" \
'enabled:bool:1' \
'device:string' \
'listen_globally:bool:0' \
gpsd_instance()
{
- local device enabled listen_globally port
-
- validate_section_gpsd "${1}" || {
+ [ "$2" = 0 ] || {
echo "validation failed"
return 1
}
- [ "${enabled}" = "0" ] && return 1
+ [ "$enabled" = "0" ] && return 1
procd_open_instance
procd_set_param command "$PROG" -N -n
- [ "${listen_globally}" -ne 0 ] && procd_append_param command -G
- procd_append_param command -S "${port}"
- procd_append_param command "${device}"
+ [ "$listen_globally" -ne 0 ] && procd_append_param command -G
+ procd_append_param command -S "$port"
+ procd_append_param command "$device"
procd_set_param respawn
procd_close_instance
start_service()
{
- config_load "${NAME}"
- config_foreach gpsd_instance gpsd
+ config_load "$NAME"
+ config_foreach validate_section_gpsd gpsd gpsd_instance
+}
+
+service_triggers() {
+ procd_add_reload_trigger "$NAME"
+ procd_add_validation validate_section_gpsd
}