summaryrefslogtreecommitdiffhomepage
path: root/libs/sgi-haserl
diff options
context:
space:
mode:
Diffstat (limited to 'libs/sgi-haserl')
-rw-r--r--libs/sgi-haserl/Makefile2
-rwxr-xr-xlibs/sgi-haserl/root/www/cgi-bin/index.cgi3
-rwxr-xr-xlibs/sgi-haserl/root/www/cgi-bin/luci2
-rwxr-xr-xlibs/sgi-haserl/root/www/cgi-bin/luci-upload4
-rw-r--r--libs/sgi-haserl/root/www/index.html10
-rw-r--r--libs/sgi-haserl/src/sgi/haserl.lua97
6 files changed, 118 insertions, 0 deletions
diff --git a/libs/sgi-haserl/Makefile b/libs/sgi-haserl/Makefile
new file mode 100644
index 000000000..81a96f6a8
--- /dev/null
+++ b/libs/sgi-haserl/Makefile
@@ -0,0 +1,2 @@
+include ../../build/config.mk
+include ../../build/module.mk \ No newline at end of file
diff --git a/libs/sgi-haserl/root/www/cgi-bin/index.cgi b/libs/sgi-haserl/root/www/cgi-bin/index.cgi
new file mode 100755
index 000000000..aae8591c6
--- /dev/null
+++ b/libs/sgi-haserl/root/www/cgi-bin/index.cgi
@@ -0,0 +1,3 @@
+#!/usr/bin/haserl --shell=luac
+print("Status: 302 Found")
+print("Location: luci\n")
diff --git a/libs/sgi-haserl/root/www/cgi-bin/luci b/libs/sgi-haserl/root/www/cgi-bin/luci
new file mode 100755
index 000000000..13fec754e
--- /dev/null
+++ b/libs/sgi-haserl/root/www/cgi-bin/luci
@@ -0,0 +1,2 @@
+#!/usr/bin/haserl --shell=luac
+require("luci.dispatcher").httpdispatch() \ No newline at end of file
diff --git a/libs/sgi-haserl/root/www/cgi-bin/luci-upload b/libs/sgi-haserl/root/www/cgi-bin/luci-upload
new file mode 100755
index 000000000..371967ce9
--- /dev/null
+++ b/libs/sgi-haserl/root/www/cgi-bin/luci-upload
@@ -0,0 +1,4 @@
+#!/usr/bin/haserl --shell=luac --upload-limit=16384
+-- This is a bit hacky: remove -upload from SCRIPT_NAME
+ENV.SCRIPT_NAME = ENV.SCRIPT_NAME:sub(1, #ENV.SCRIPT_NAME - 7)
+dofile("luci") \ No newline at end of file
diff --git a/libs/sgi-haserl/root/www/index.html b/libs/sgi-haserl/root/www/index.html
new file mode 100644
index 000000000..39ba558df
--- /dev/null
+++ b/libs/sgi-haserl/root/www/index.html
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="refresh" content="0; URL=/cgi-bin/index.cgi" />
+</head>
+<body style="background-color: black">
+<a style="color: white; text-decoration: none" href="/cgi-bin/index.cgi">LuCI - Lua Configuration Interface</a>
+</body>
+</html> \ No newline at end of file
diff --git a/libs/sgi-haserl/src/sgi/haserl.lua b/libs/sgi-haserl/src/sgi/haserl.lua
new file mode 100644
index 000000000..f3994b5c8
--- /dev/null
+++ b/libs/sgi-haserl/src/sgi/haserl.lua
@@ -0,0 +1,97 @@
+--[[
+LuCI - SGI-Module for Haserl
+
+Description:
+Server Gateway Interface for Haserl
+
+FileId:
+$Id: haserl.lua 2027 2008-05-07 21:16:35Z Cyrus $
+
+License:
+Copyright 2008 Steven Barth <steven@midlink.org>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+]]--
+module("luci.sgi.haserl", package.seeall)
+require("luci.fs")
+
+-- Environment Table
+luci.http.env = ENV
+
+-- Returns the main dispatcher URL
+function luci.http.dispatcher()
+ return luci.http.env.SCRIPT_NAME or ""
+end
+
+-- Returns the upload dispatcher URL
+function luci.http.dispatcher_upload()
+ return luci.http.dispatcher() .. "-upload"
+end
+
+-- Returns a table of all COOKIE, GET and POST Parameters
+function luci.http.formvalues()
+ return FORM
+end
+
+-- Gets form value from key
+function luci.http.formvalue(key, default)
+ local c = luci.http.formvalues()
+
+ for match in key:gmatch("[%w-_]+") do
+ c = c[match]
+ if c == nil then
+ return default
+ end
+ end
+
+ return c
+end
+
+-- Gets a table of values with a certain prefix
+function luci.http.formvaluetable(prefix)
+ return luci.http.formvalue(prefix, {})
+end
+
+-- Sends a custom HTTP-Header
+function luci.http.header(key, value)
+ print(key .. ": " .. value)
+end
+
+-- Set Content-Type
+function luci.http.prepare_content(type)
+ print("Content-Type: "..type.."\n")
+end
+
+-- Asks the browser to redirect to "url"
+function luci.http.redirect(url)
+ luci.http.status(302, "Found")
+ luci.http.header("Location", url)
+ print()
+end
+
+-- Returns the path of an uploaded file
+-- WARNING! File uploads can be easily spoofed! Do additional sanity checks!
+function luci.http.upload(name)
+ local fpath = luci.http.formvalue(name)
+ local fname = luci.http.formvalue(name .. "_name")
+
+ if fpath and fname and luci.fs.isfile(fpath) then
+ return fpath
+ end
+end
+
+-- Sets HTTP-Status-Header
+function luci.http.status(code, message)
+ print("Status: " .. tostring(code) .. " " .. message)
+end