diff --git a/multimedia/ushare/Makefile b/multimedia/ushare/Makefile index e651f21f8..b37397eb4 100644 --- a/multimedia/ushare/Makefile +++ b/multimedia/ushare/Makefile @@ -68,6 +68,10 @@ define Package/ushare/install $(CP) $(PKG_INSTALL_DIR)/etc/ushare.conf $(1)/etc/ $(INSTALL_DIR) $(1)/usr/bin $(CP) $(PKG_INSTALL_DIR)/usr/bin/ushare $(1)/usr/bin/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME) + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME) endef $(eval $(call BuildPackage,ushare)) diff --git a/multimedia/ushare/files/ushare.config b/multimedia/ushare/files/ushare.config new file mode 100644 index 000000000..b220eb2da --- /dev/null +++ b/multimedia/ushare/files/ushare.config @@ -0,0 +1,9 @@ +config 'ushare' + option 'username' 'nobody' + option 'servername' 'OpenWrt' + option 'interface' 'br-lan' + option 'options' '' + option 'content_directories' '/tmp' + option 'disable_telnet' '1' + option 'disable_webif' '1' + option 'enabled' '0' diff --git a/multimedia/ushare/files/ushare.init b/multimedia/ushare/files/ushare.init new file mode 100644 index 000000000..b22a7a22e --- /dev/null +++ b/multimedia/ushare/files/ushare.init @@ -0,0 +1,58 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2008 OpenWrt.org +START=50 + +BIN=/usr/bin/ushare +SSD=start-stop-daemon + +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get_bool _val "$section" "$option" '0' + [ "$_val" -gt 0 ] && append args "$3" +} + +append_string() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get _val "$section" "$option" + [ -n "$_val" ] && append args "$3 $_val" +} + +start_service() { + local section="$1" + args="" + config_get username "$section" "username" + config_get servername "$section" "servername" + config_get interface "$section" "interface" + config_get options "$section" "options" + config_get content_directories "$section" "content_directories" + append_bool "$section" "disable_webif" "-w" + append_bool "$section" "disable_telnet" "-t" + config_get_bool "enabled" "$section" "enabled" '1' + + [ "$enabled" -gt 0 ] && $SSD -x $BIN -c ${username:-nobody} -S -b -p /var/run/ushare.pid -m -- -n ${servername:-OpenWrt} -i ${interface:-br-lan} -c ${content_directories:-/tmp} $args ${options} & +} + +stop_service() { + local section="$1" + args="" + config_get username "$section" "username" + + $SSD -K -x $BIN -c ${username:-nobody} -s 2 -p /var/run/ushare.pid +} + +start() { + config_load ushare + config_foreach start_service ushare +} + +stop() { + config_load ushare + config_foreach stop_service ushare +} +