[packages] multimedia/ushare: Add a UCI aware init script + config file
authorOliver Ertl <oliver@ertl-net.net>
Wed, 24 Sep 2008 20:49:08 +0000 (20:49 +0000)
committerOliver Ertl <oliver@ertl-net.net>
Wed, 24 Sep 2008 20:49:08 +0000 (20:49 +0000)
SVN-Revision: 12691

multimedia/ushare/Makefile
multimedia/ushare/files/ushare.config [new file with mode: 0644]
multimedia/ushare/files/ushare.init [new file with mode: 0644]

index e651f21..b37397e 100644 (file)
@@ -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 (file)
index 0000000..b220eb2
--- /dev/null
@@ -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 (file)
index 0000000..b22a7a2
--- /dev/null
@@ -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
+}
+