From 623eb2648635273153988d94b1ac38f9bbe892b0 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Mon, 23 Jun 2008 21:49:29 +0000 Subject: [PATCH] * Added preliminary OpenWRT support for luci-httpd --- contrib/package/luci/Makefile | 40 +++++++++++++++++++++++ libs/sgi-luci/Makefile | 2 ++ libs/sgi-luci/root/etc/init.d/luci-httpd | 41 ++++++++++++++++++++++++ libs/sgi-luci/root/usr/bin/luci-httpd | 33 +++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 100644 libs/sgi-luci/Makefile create mode 100755 libs/sgi-luci/root/etc/init.d/luci-httpd create mode 100755 libs/sgi-luci/root/usr/bin/luci-httpd diff --git a/contrib/package/luci/Makefile b/contrib/package/luci/Makefile index 8b03f7956..bc7881300 100644 --- a/contrib/package/luci/Makefile +++ b/contrib/package/luci/Makefile @@ -43,6 +43,12 @@ define Package/luci/fftemplate DEPENDS:=+luci-mod-freifunk endef +define Package/luci/httpdtemplate + $(call Package/luci/libtemplate) + SUBMENU:=LuCI - Non-Forking HTTP-Daemon (EXPERIMENTAL) + DEPENDS:=+luci-httpd +endef + define Package/luci/i18ntemplate $(call Package/luci/libtemplate) SUBMENU:=LuCI - Translations @@ -158,6 +164,20 @@ endef +### HTTPD ### + +define Package/luci-httpd + $(call Package/luci/httpdtemplate) + DEPENDS:=+luci-http +luasocket + TITLE:=Server Core +endef + +define Package/luci-httpd/install + $(call Package/luci/install/template,$(1),libs/httpd) +endef + + + ### Community Packages ### define Package/luci-ff-halle @@ -332,6 +352,16 @@ define Package/luci-sgi-cgi/install $(call Package/luci/install/template,$(1),libs/sgi-cgi) endef +define Package/luci-sgi-luci + $(call Package/luci/libtemplate) + DEPENDS+=+luci-web +luci-httpd + TITLE:=SGI for LuCI HTTPD +endef + +define Package/luci-sgi-luci/install + $(call Package/luci/install/template,$(1),libs/sgi-luci) +endef + define Package/luci-sgi-webuci $(call Package/luci/libtemplate) DEPENDS+=+luci-web @@ -404,6 +434,10 @@ ifneq ($(CONFIG_PACKAGE_luci-web),) PKG_SELECTED_MODULES+=libs/web endif +ifneq ($(CONFIG_PACKAGE_luci-httpd),) + PKG_SELECTED_MODULES+=libs/httpd +endif + ifneq ($(CONFIG_PACKAGE_luci-ff-halle),) PKG_SELECTED_MODULES+=applications/community-halle endif @@ -443,6 +477,9 @@ endif ifneq ($(CONFIG_PACKAGE_luci-sgi-cgi),) PKG_SELECTED_MODULES+=libs/sgi-cgi endif +ifneq ($(CONFIG_PACKAGE_luci-sgi-luci),) + PKG_SELECTED_MODULES+=libs/sgi-luci +endif ifneq ($(CONFIG_PACKAGE_luci-sgi-webuci),) PKG_SELECTED_MODULES+=libs/sgi-webuci endif @@ -472,6 +509,8 @@ $(eval $(call BuildPackage,luci-http)) $(eval $(call BuildPackage,luci-uci)) $(eval $(call BuildPackage,luci-web)) +$(eval $(call BuildPackage,luci-httpd)) + $(eval $(call BuildPackage,luci-ff-halle)) $(eval $(call BuildPackage,luci-ff-leipzig)) $(eval $(call BuildPackage,luci-ff-hannover)) @@ -487,6 +526,7 @@ $(eval $(call BuildPackage,luci-app-splash)) $(eval $(call BuildPackage,luci-app-statistics)) $(eval $(call BuildPackage,luci-sgi-cgi)) +$(eval $(call BuildPackage,luci-sgi-luci)) $(eval $(call BuildPackage,luci-sgi-webuci)) $(eval $(call BuildPackage,luci-theme-fledermaus)) diff --git a/libs/sgi-luci/Makefile b/libs/sgi-luci/Makefile new file mode 100644 index 000000000..81a96f6a8 --- /dev/null +++ b/libs/sgi-luci/Makefile @@ -0,0 +1,2 @@ +include ../../build/config.mk +include ../../build/module.mk \ No newline at end of file diff --git a/libs/sgi-luci/root/etc/init.d/luci-httpd b/libs/sgi-luci/root/etc/init.d/luci-httpd new file mode 100755 index 000000000..ce7914a38 --- /dev/null +++ b/libs/sgi-luci/root/etc/init.d/luci-httpd @@ -0,0 +1,41 @@ +#!/bin/sh /etc/rc.common +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/bin/luci-httpd +NAME=luci-httpd +DESC="HTTP server" +START=49 + +test -x $DAEMON || exit 0 + +set -e + +start() { + echo -n "Starting $DESC: $NAME" + start-stop-daemon -S -q -x $DAEMON + echo "." +} + +stop() { + echo -n "Stopping $DESC: $NAME" + start-stop-daemon -K -q -x $DAEMON + echo "." +} + +restart() { + echo -n "Restarting $DESC: $NAME... " + start-stop-daemon -K -s HUP -q -x $DAEMON + echo "done." +} + +reload() { + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + echo -n "Reloading $DESC configuration... " + start-stop-daemon -K -s 1 -q -x $DAEMON + echo "done." +} diff --git a/libs/sgi-luci/root/usr/bin/luci-httpd b/libs/sgi-luci/root/usr/bin/luci-httpd new file mode 100755 index 000000000..7f2ee50fa --- /dev/null +++ b/libs/sgi-luci/root/usr/bin/luci-httpd @@ -0,0 +1,33 @@ +#!/usr/bin/lua +require("luci.httpd") +require("luci.httpd.server") +require("luci.httpd.handler.file") +require("luci.httpd.handler.luci") + +DOCROOT = "/www" +PORT = 8080 + +collectgarbage("setpause", 150) + +serversocket = luci.httpd.Socket("0.0.0.0", PORT) + + +server = luci.httpd.server.Server() +vhost = luci.httpd.server.VHost() + +server:set_default_vhost(vhost) + + +filehandler = luci.httpd.handler.file.Simple(DOCROOT) +vhost:set_default_handler(filehandler) + +lucihandler = luci.httpd.handler.luci.Luci() +vhost:set_handler("/luci", lucihandler) + +io.stderr:write("Starting LuCI HTTPD on port " .. PORT .. "...\n") +io.stderr:write("Point your browser to http://localhost:" .. PORT .. "/luci\n") + +daemon = luci.httpd.Daemon() +--daemon.debug = true +daemon:register(serversocket, server:create_daemon_handlers()) +daemon:run() -- 2.25.1