093a16805057644b018bc48f1b5facfa7238e778
[feed/packages.git] / sound / shairplay / files / shairplay.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2014 OpenWrt.org
3
4 START=90
5 USE_PROCD=1
6
7 append_arg() {
8 local cfg="$1"
9 local var="$2"
10 local opt="$3"
11 local def="$4"
12 local val
13
14 config_get val "$cfg" "$var"
15 [ -n "$val" -o -n "$def" ] && procd_append_param command $opt="${val:-$def}"
16 }
17
18 start_instance() {
19 local cfg="$1"
20 local aux
21
22 config_get_bool aux "$cfg" 'disabled' '0'
23 [ "$aux" = 1 ] && return 1
24
25 procd_open_instance
26
27 procd_set_param command /usr/bin/shairplay
28
29 append_arg "$cfg" apname "--apname" "AirPlay"
30 append_arg "$cfg" port "--server_port"
31 append_arg "$cfg" password "--password"
32 append_arg "$cfg" hwaddr "--hwaddr"
33
34 append_arg "$cfg" ao_driver "--ao_driver"
35 append_arg "$cfg" ao_devicename "--ao_devicename"
36 append_arg "$cfg" ao_deviceid "--ao_deviceid"
37
38 config_get_bool aux "$cfg" 'respawn' '0'
39 [ "$aux" = 1 ] && procd_set_param respawn
40
41 procd_close_instance
42 }
43
44 service_triggers() {
45 procd_add_reload_trigger "shairplay"
46 }
47
48 start_service() {
49 config_load shairplay
50 config_foreach start_instance shairplay
51 }