|  | #!/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 | 
|  | } |