Mercurial Hosting > luan
diff http/src/luan/modules/http/Server.luan @ 503:92c3d22745b8
make _ENV optional
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 20 May 2015 23:24:46 -0600 |
parents | 2b9bc97f0439 |
children | 9bf9ad733827 |
line wrap: on
line diff
--- a/http/src/luan/modules/http/Server.luan Tue May 19 17:57:20 2015 -0600 +++ b/http/src/luan/modules/http/Server.luan Wed May 20 23:24:46 2015 -0600 @@ -20,81 +20,84 @@ local LuanHandler = require "java:luan.modules.http.LuanHandler" local NotFound = require "java:luan.modules.http.NotFound" +local M = {} -port = 8080 +M.port = 8080 -private_password = "password" +M.private_password = "password" -welcome_file = "index.html" +M.welcome_file = "index.html" -authentication_handler = AuthenticationHandler.new("/private/") +M.authentication_handler = AuthenticationHandler.new("/private/") -luan_handler = LuanHandler.new() +M.luan_handler = LuanHandler.new() -resource_handler = ResourceHandler.new() -resource_handler.setDirectoriesListed(true) +M.resource_handler = ResourceHandler.new() +M.resource_handler.setDirectoriesListed(true) -handlers = HandlerList.new() -handlers.setHandlers { authentication_handler, luan_handler, resource_handler } +M.handlers = HandlerList.new() +M.handlers.setHandlers { M.authentication_handler, M.luan_handler, M.resource_handler } -function add_folder(context,dir) +function M.add_folder(context,dir) local rh = ResourceHandler.new() rh.setResourceBase(dir) rh.setDirectoriesListed(true) local ch = ContextHandler.new(context) ch.setHandler(rh) - handlers.addHandler(ch) + M.handlers.addHandler(ch) return rh end -handler_wrapper = HandlerWrapper.new() -handler_wrapper.setHandler(handlers) +M.handler_wrapper = HandlerWrapper.new() +M.handler_wrapper.setHandler(M.handlers) -function zip() +function M.zip() local h = GzipHandler.new() - h.setHandler(handler_wrapper.getHandler()) - handler_wrapper.setHandler(h) + h.setHandler(M.handler_wrapper.getHandler()) + M.handler_wrapper.setHandler(h) end -log = NCSARequestLog.new() -log.setExtended(false) -log_handler = RequestLogHandler.new() -log_handler.setRequestLog(log) +M.log = NCSARequestLog.new() +M.log.setExtended(false) +M.log_handler = RequestLogHandler.new() +M.log_handler.setRequestLog(M.log) -function set_log_file(file_name) - log.setFilename(file_name) +function M.set_log_file(file_name) + M.log.setFilename(file_name) end local hc = HandlerCollection.new() -hc.setHandlers { SessionHandler.new(), handler_wrapper, DefaultHandler.new(), log_handler } +hc.setHandlers { SessionHandler.new(), M.handler_wrapper, DefaultHandler.new(), M.log_handler } -function init(dir) +function M.init(dir) dir = dir.gsub("/$","") -- remove trailing '/' if any Http.dir = dir function Io.schemes.site(path,add_extension) return Io.uri( dir..path, add_extension ) end - authentication_handler.setPassword(private_password) + M.authentication_handler.setPassword(M.private_password) local base = dir if base.match("^classpath:") ~= nil then - base = dir.."#"..welcome_file.."#"..welcome_file..".luan" + base = dir.."#"..M.welcome_file.."#"..M.welcome_file..".luan" end - resource_handler.setResourceBase(Io.uri(base).to_string()) - resource_handler.setWelcomeFiles {welcome_file} - luan_handler.setWelcomeFile(welcome_file) - handlers.addHandler(NotFound.new()) - server = Server.new(port) - server.setHandler(hc) + M.resource_handler.setResourceBase(Io.uri(base).to_string()) + M.resource_handler.setWelcomeFiles {M.welcome_file} + M.luan_handler.setWelcomeFile(M.welcome_file) + M.handlers.addHandler(NotFound.new()) + M.server = Server.new(M.port) + M.server.setHandler(hc) Package.load("site:/init") end -function start() - server.start() +function M.start() + M.server.start() end -function serve(dir) - init(dir) - start() +function M.serve(dir) + M.init(dir) + M.start() end + +return M