shairplay.init (1036B)
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 }