]> Untitled Git - public.git/blob - lua/publish.lua
Replaced old perl publish with web-accessible publish
[public.git] / lua / publish.lua
1 require "apache2"
2
3 function publish(dir, pattern)
4     local cmd = ("%s/publish.sh %s"):format(dir, pattern)
5     local handle = io.popen(cmd)
6     local output = handle:read('*a')
7     handle:close()
8
9     return output
10 end
11
12 function get_form(dir)
13     local handle = io.open(dir .. '/submit.html')
14     local output = handle:read('*a')
15     handle:close()
16
17     return output;
18 end
19
20 function handle(r)
21     r.content_type = "text/html"
22
23     local args = r:parseargs()
24     local pattern = args.pattern 
25
26     if pattern then
27         local nonce = publish(r.context_document_root, pattern)
28         local uri = ("%s://%s:%s/%s"):format(
29             r.is_https and "https" or "http", 
30             r.server_name, r.port, nonce)
31         r:puts( ([[<a href="%s">%s</a>]]):format(uri, uri) )
32     else
33         local template = get_form(r.context_document_root)
34         r:puts( template )
35     end
36
37     return apache2.OK
38 end