Mercurial Hosting > luan
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 |