First Commit
[librecmc/package-feed.git] / utils / dump1090 / files / dump1090.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2014-2016 OpenWrt.org
3
4 START=90
5 STOP=10
6 USE_PROCD=1
7
8 append_arg() {
9         local cfg="$1"
10         local var="$2"
11         local opt="$3"
12         local def="$4"
13         local val
14
15         config_get val "$cfg" "$var"
16         [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
17 }
18
19 append_bool() {
20         local cfg="$1"
21         local var="$2"
22         local opt="$3"
23         local def="$4"
24         local val
25
26         config_get_bool val "$cfg" "$var" "$def"
27         [ "$val" = 1 ] && procd_append_param command "$opt"
28 }
29
30 start_instance() {
31         local cfg="$1"
32         local aux
33
34         config_get_bool aux "$cfg" 'disabled' '0'
35         [ "$aux" = 1 ] && return 1
36
37         procd_open_instance
38
39         procd_set_param command /usr/bin/dump1090
40         procd_append_param command "--quiet"
41
42         append_arg "$cfg" device_index "--device-index"
43         append_arg "$cfg" gain "--gain"
44         append_bool "$cfg" enable_agc "--enable-agc"
45         append_arg "$cfg" freq "--freq"
46         append_arg "$cfg" ifile "--ifile"
47         append_arg "$cfg" iformat "--iformat"
48         append_bool "$cfg" throttle "--throttle"
49         append_bool "$cfg" raw "--raw"
50         append_bool "$cfg" net "--net"
51         append_bool "$cfg" modeac "--modeac"
52         append_bool "$cfg" net_only "--net-only"
53         append_arg "$cfg" net_bind_address "--net-bind-address"
54         append_arg "$cfg" net_ri_port "--net-ri-port"
55         append_arg "$cfg" net_ro_port "--net-ro-port"
56         append_arg "$cfg" net_sbs_port "--net-sbs-port"
57         append_arg "$cfg" net_bi_port "--net-bi-port"
58         append_arg "$cfg" net_bo_port "--net-bo-port"
59         append_arg "$cfg" net_ro_size "--net-ro-size"
60         append_arg "$cfg" net_ro_interval "--net-ro-interval"
61         append_arg "$cfg" net_heartbeat "--net-heartbeat"
62         append_arg "$cfg" net_buffer "--net-buffer"
63         append_bool "$cfg" net_verbatim "--net-verbatim"
64         append_bool "$cfg" forward_mlat "--forward-mlat"
65         append_arg "$cfg" lat "--lat"
66         append_arg "$cfg" lon "--lon"
67         append_arg "$cfg" max_range "--max-range"
68         append_bool "$cfg" fix "--fix"
69         append_bool "$cfg" no_fix "--no-fix"
70         append_bool "$cfg" no_crc_check "--no-crc-check"
71         append_bool "$cfg" phase_enhance "--phase-enhance"
72         append_bool "$cfg" mlat "--mlat"
73         append_bool "$cfg" stats "--stats"
74         append_bool "$cfg" stats_range "--stats-range"
75         append_arg "$cfg" stats_every "--stats-every"
76         append_bool "$cfg" onlyaddr "--onlyaddr"
77         append_bool "$cfg" metric "--metric"
78         append_bool "$cfg" gnss "--gnss"
79         append_arg "$cfg" snip "--snip"
80         append_arg "$cfg" debug "--debug"
81         append_arg "$cfg" ppm "--ppm"
82         append_arg "$cfg" html_dir "--html-dir"
83         append_arg "$cfg" write_json "--write-json"
84         config_get aux "$cfg" "write_json"
85         [ -n "$aux" ] && mkdir -p $aux
86         append_arg "$cfg" write_json_every "--write-json-every"
87         append_arg "$cfg" json_location_accuracy "--json-location-accuracy"
88         append_bool "$cfg" oversample "--oversample"
89         append_bool "$cfg" dcfilter "--dcfilter"
90         append_bool "$cfg" measure_noise "--measure-noise"
91
92         config_get_bool aux "$cfg" 'respawn' '0'
93         [ "$aux" = 1 ] && procd_set_param respawn
94
95         procd_close_instance
96 }
97
98 service_triggers() {
99         procd_add_reload_trigger "dump1090"
100 }
101
102 start_service() {
103         config_load dump1090
104         config_foreach start_instance dump1090
105 }