shairport: Update to latest version and switch to procd

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[florian: fix subject and message]
Signed-off-by: Florian Fainelli <florian@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@40785 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
florian 2014-05-20 04:51:19 +00:00
parent 657092e09c
commit f33120e21a
3 changed files with 51 additions and 24 deletions

View File

@ -8,13 +8,13 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=shairport PKG_NAME:=shairport
PKG_VERSION:=2013-10-26 PKG_VERSION:=2014-05-08
PKG_RELEASE:=$(PKG_SOURCE_VERSION) PKG_RELEASE:=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://github.com/abrasive/shairport.git PKG_SOURCE_URL:=git://github.com/abrasive/shairport.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=b2c7bf111c1446739af9411d8a35acd9b6581b06 PKG_SOURCE_VERSION:=078b21043cdcef6ffad7452db27f036770b23b0c
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
@ -51,7 +51,7 @@ define Package/shairport/install
$(INSTALL_DIR) $(1)/etc/init.d/ $(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) files/shairport.init $(1)/etc/init.d/shairport $(INSTALL_BIN) files/shairport.init $(1)/etc/init.d/shairport
$(INSTALL_DIR) $(1)/etc/config $(INSTALL_DIR) $(1)/etc/config
$(INSTALL_DATA) files/shairport.config $(1)/etc/config/shairport $(INSTALL_CONF) files/shairport.config $(1)/etc/config/shairport
endef endef
$(eval $(call BuildPackage,shairport)) $(eval $(call BuildPackage,shairport))

View File

@ -1,3 +1,11 @@
config shairport config shairport
option name 'AirPort' option name 'AirPort'
option password ''
option port '5002'
option buffer '256' option buffer '256'
option log '/var/log/shairport'
option cmd_start ''
option cmd_stop ''
option cmd_wait '0'
option audio_output ''
option mdns ''

View File

@ -1,34 +1,53 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
START=80 # Copyright (C) 2013-2014 OpenWrt.org
DAEMON="/usr/sbin/shairport" START=50
USE_PROCD=1
config_shairport() { config_shairport() {
local cfg="$1" local cfg="$1"
local args=""
config_get name "$cfg" name local cfg_name
config_get port "$cfg" port local cfg_password
config_get buffer "$cfg" buffer local cfg_port
local cfg_buffer
local cfg_log
local cfg_cmd_start
local cfg_cmd_stop
local cfg_cmd_wait
local cfg_audio_output
local cfg_mdns
[ -z $name ] && name="AirPort" config_get cfg_name $cfg 'name' 'AirPort'
args="$args -a $name" config_get cfg_password $cfg 'password' ''
config_get cfg_port $cfg 'port' '5002'
config_get cfg_buffer $cfg 'buffer' '256'
config_get cfg_log $cfg 'log' '/var/log/shairport'
config_get cfg_cmd_start $cfg 'cmd_start' ''
config_get cfg_cmd_stop $cfg 'cmd_stop' ''
config_get_bool cfg_cmd_wait $cfg 'cmd_wait' '0'
config_get cfg_audio_output $cfg 'audio_output' ''
config_get cfg_mdns $cfg 'mdns' ''
[ ! -z "$port" ] && args="$args -p $port" procd_open_instance
[ -z $buffer ] && buffer="256" procd_set_param command /usr/sbin/shairport
args="$args -b $buffer" procd_append_param command -a "$cfg_name"
[ ! -z "$cfg_password" ] && procd_append_param command -k "$cfg_password"
procd_append_param command -p $cfg_port
procd_append_param command -b $cfg_buffer
procd_append_param command -l $cfg_log
[ ! -z "$cfg_cmd_start" ] && procd_append_param command -B "$cfg_cmd_start"
[ ! -z "$cfg_cmd_stop" ] && procd_append_param command -E "$cfg_cmd_stop"
[ "$cfg_cmd_wait" -eq 1 ] && procd_append_param command -w
[ ! -z "$cfg_audio_output" ] && procd_append_param command -o "$cfg_audio_output"
[ ! -z "$cfg_mdns" ] && procd_append_param command -m "$cfg_mdns"
args="$args -d" procd_set_param respawn
procd_close_instance
service_start $DAEMON $args
} }
start() { start_service() {
config_load shairport config_load shairport
config_foreach config_shairport shairport config_foreach config_shairport shairport
} }
stop() {
service_stop $DAEMON
}