blob: e702b4ca44eb8f1e6b4c75f6efe305e473d70af3 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/bin/sh /etc/rc.common
2# Copyright (c) 2014 OpenWrt.org
3
4START=80
5
6USE_PROCD=1
7PROG=/usr/sbin/ugps
8
9service_triggers() {
10 procd_add_reload_trigger gps
11}
12
13start_service() {
14 local tty="$(uci get gps.@gps[-1].tty)"
15 local baudrate="$(uci get gps.@gps[-1].baudrate || echo 0)"
16 local atime="$(uci get gps.@gps[-1].adjust_time)"
17 local disabled="$(uci get gps.@gps[-1].disabled || echo 0)"
18
19 [ "$disabled" == "0" ] || return
20 [ "$tty" ] || return
21
22 case "$tty" in
23 "/"*)
24 true
25 ;;
26 *)
27 tty="/dev/$tty"
28 ;;
29 esac
30
31 procd_open_instance
32 procd_set_param command "$PROG"
33 [ "$baudrate" -eq 0 ] || procd_append_param command "-b ${baudrate}"
34 [ "$atime" -eq 0 ] || procd_append_param command "-a"
35 procd_append_param command "$tty"
36 procd_set_param respawn
37 procd_close_instance
38}