diff options
Diffstat (limited to 'cgi.lua')
| -rwxr-xr-x | cgi.lua | 52 |
1 files changed, 52 insertions, 0 deletions
@@ -0,0 +1,52 @@ +local cgi={} + +cgi.newline=false + +function cgi.tag(key,value,attrib) + local ret_str="<"..key + + if (attrib) then + for a_key,a_val in pairs(attrib) do + ret_str=ret_str.." "..a_key..'="'..a_val..'"' + end + end + + ret_str=ret_str..">" + if cgi.newline==true then ret_str=ret_str.."\n" end + + ret_str=ret_str..value + + if cgi.newline==true then ret_str=ret_str.."\n" end + + ret_str=ret_str.."</"..key..">" + + if cgi.newline==true then ret_str=ret_str.."\n" end + + return ret_str +end + +local function get_phrase(code) + local cases={ + [200]="OK", + [401]="Unauthorized", + } + if(cases[code]) then return cases[code] else return "" end +end + +function cgi.header(code,headers) + print("Status: "..code.." "..get_phrase(code)) + for h_name,header in pairs(headers) do + print(h_name..": "..header) + end + print() +end + +function cgi.render(content,headers,code) + headers["Content-Length"] = tostring(content:len()+1) + cgi.header(code,headers) + print(content); +end + +_G.m = cgi.tag + +return cgi |
