comparison src/luan/host/run.luan @ 1418:732b5de211fc

add Hosted.luan
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 18 Oct 2019 22:29:46 -0600
parents 27efb1fcbcb5
children c78d6a4e2d9a
comparison
equal deleted inserted replaced
1417:c7f9dd062eda 1418:732b5de211fc
2 local Luan = require "luan:Luan.luan" 2 local Luan = require "luan:Luan.luan"
3 local error = Luan.error 3 local error = Luan.error
4 local do_file = Luan.do_file or error() 4 local do_file = Luan.do_file or error()
5 local ipairs = Luan.ipairs or error() 5 local ipairs = Luan.ipairs or error()
6 local Io = require "luan:Io.luan" 6 local Io = require "luan:Io.luan"
7 local Hosting = require "luan:host/Hosting.luan" 7 local Hosted = require "luan:host/Hosted.luan"
8 local Logging = require "luan:logging/Logging.luan" 8 local Logging = require "luan:logging/Logging.luan"
9 local logger = Logging.logger "run" 9 local logger = Logging.logger "run"
10 local NotFound = require "java:luan.modules.http.NotFound" 10 local NotFound = require "java:luan.modules.http.NotFound"
11 local ListHandler = require "java:goodjava.webserver.handlers.ListHandler" 11 local ListHandler = require "java:goodjava.webserver.handlers.ListHandler"
12 local WebHandler = require "java:luan.host.WebHandler" 12 local WebHandler = require "java:luan.host.WebHandler"
13 Hosting.WebHandler = WebHandler 13 Hosted.WebHandler = WebHandler
14 14
15 15
16 local here = Io.schemes.file(".").canonical().to_string() 16 local here = Io.schemes.file(".").canonical().to_string()
17 Hosting.sites_dir = here.."/sites/" 17 Hosted.sites_dir = here.."/sites/"
18 18
19 do_file "classpath:luan/host/main.luan" 19 do_file "classpath:luan/host/main.luan"
20 20
21 21
22 -- web server 22 -- web server
24 local Server = require "java:goodjava.webserver.Server" 24 local Server = require "java:goodjava.webserver.Server"
25 local IndexHandler = require "java:goodjava.webserver.handlers.IndexHandler" 25 local IndexHandler = require "java:goodjava.webserver.handlers.IndexHandler"
26 local ContentTypeHandler = require "java:goodjava.webserver.handlers.ContentTypeHandler" 26 local ContentTypeHandler = require "java:goodjava.webserver.handlers.ContentTypeHandler"
27 local SafeHandler = require "java:goodjava.webserver.handlers.SafeHandler" 27 local SafeHandler = require "java:goodjava.webserver.handlers.SafeHandler"
28 28
29 local handler = WebHandler.new(Hosting.sites_dir) 29 local handler = WebHandler.new(Hosted.sites_dir)
30 local not_found_hander = NotFound.new(handler) 30 local not_found_hander = NotFound.new(handler)
31 handler = IndexHandler.new(handler) 31 handler = IndexHandler.new(handler)
32 handler = ListHandler.new( handler, not_found_hander ) 32 handler = ListHandler.new( handler, not_found_hander )
33 handler = ContentTypeHandler.new(handler) 33 handler = ContentTypeHandler.new(handler)
34 handler = SafeHandler.new(handler) 34 handler = SafeHandler.new(handler)
35 local server = Server.ForAddress.new("127.0.0.1",8080,handler) 35 local server = Server.ForAddress.new("127.0.0.1",8080,handler)
36 server.start() 36 server.start()
37 37
38 38
39 local sites_dir = Io.schemes.file(Hosting.sites_dir) 39 local sites_dir = Io.schemes.file(Hosted.sites_dir)
40 for _, site_dir in ipairs(sites_dir.children()) do 40 for _, site_dir in ipairs(sites_dir.children()) do
41 local name = site_dir.name() 41 local name = site_dir.name()
42 WebHandler.loadHandler(name) 42 WebHandler.loadHandler(name)
43 end 43 end