#!/bin/sh /etc/rc.common # Copyright (c) 2014 OpenWrt.org START=80 USE_PROCD=1 PROG=/usr/sbin/ugps service_triggers() { procd_add_reload_trigger gps } start_service() { local tty="$(uci get gps.@gps[-1].tty)" local baudrate="$(uci get gps.@gps[-1].baudrate || echo 0)" local atime="$(uci get gps.@gps[-1].adjust_time)" local disabled="$(uci get gps.@gps[-1].disabled || echo 0)" [ "$disabled" == "0" ] || return [ "$tty" ] || return case "$tty" in "/"*) true ;; *) tty="/dev/$tty" ;; esac procd_open_instance procd_set_param command "$PROG" [ "$baudrate" -eq 0 ] || procd_append_param command "-b ${baudrate}" [ "$atime" -eq 0 ] || procd_append_param command "-a" procd_append_param command "$tty" procd_set_param respawn procd_close_instance }