* Added file upload capabilities

This commit is contained in:
Steven Barth 2008-04-06 12:08:05 +00:00
parent 9ba8d2aea9
commit 6f934c0dbe
5 changed files with 21 additions and 4 deletions

4
contrib/ffluci-upload Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/haserl --shell=luac --upload-limit=6144
-- This is a bit hacky: remove -upload from SCRIPT_NAME
ENV.SCRIPT_NAME = ENV.SCRIPT_NAME:sub(1, #ENV.SCRIPT_NAME - 7)
dofile("ffluci")

View file

@ -44,6 +44,7 @@ define Package/ffluci/install
$(CP) $(PKG_BUILD_DIR)/dist/* $(1)/usr/lib/lua/ -R
$(CP) $(PKG_BUILD_DIR)/contrib/media $(1)/www/ffluci/ -R
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/ffluci $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/ffluci-upload $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/index.cgi $(1)/www/cgi-bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/contrib/index.html $(1)/www
$(CP) $(PKG_BUILD_DIR)/contrib/uci/luci $(1)/etc/config/luci

View file

@ -1,4 +1,9 @@
#!/bin/sh
PATTERN='/cgi-bin/ffluci/admin:root:$p$root'
grep $PATTERN ${IPKG_INSTROOT}/etc/httpd.conf >/dev/null 2>/dev/null || echo $PATTERN >> ${IPKG_INSTROOT}/etc/httpd.conf
PATTERNS='/cgi-bin/ffluci/admin:root:$p$root /cgi-bin/ffluci-upload:root:$p$root'
for i in "$PATTERNS"
do
grep "$i" ${IPKG_INSTROOT}/etc/httpd.conf >/dev/null 2>/dev/null || echo "$i" >> ${IPKG_INSTROOT}/etc/httpd.conf
done
[ -n ${IPKG_INSTROOT} ] || /etc/init.d/httpd restart

View file

@ -54,11 +54,17 @@ function request_redirect(category, module, action, ...)
module = module or "index"
action = action or "index"
local pattern = os.getenv("SCRIPT_NAME") .. "/%s/%s/%s"
local pattern = script_name() .. "/%s/%s/%s"
redirect(pattern:format(category, module, action), ...)
end
-- Returns the script name
function script_name()
return ENV.SCRIPT_NAME
end
-- Gets form value from key
function formvalue(key, default)
local c = formvalues()

View file

@ -29,6 +29,7 @@ require("ffluci.config")
require("ffluci.util")
require("ffluci.fs")
require("ffluci.i18n")
require("ffluci.http")
require("ffluci.model.uci")
viewdir = ffluci.config.path .. "/view/"
@ -53,7 +54,7 @@ compiler_enable_bytecode = false
viewns = {
translate = ffluci.i18n.translate,
config = function(...) return ffluci.model.uci.get(...) or "" end,
controller = os.getenv("SCRIPT_NAME"),
controller = ffluci.http.script_name(),
media = ffluci.config.main.mediaurlbase,
write = io.write,
include = function(name) Template(name):render(getfenv(2)) end,