Mercurial Hosting > luan
annotate src/luan/host/run.luan @ 1677:ea7075b7afe1
switch to index.json
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 31 May 2022 14:36:16 -0600 |
parents | 0a46dbd36208 |
children | 97cc73664ca8 |
rev | line source |
---|---|
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1347
diff
changeset
|
1 require "java" |
1135 | 2 local Luan = require "luan:Luan.luan" |
3 local error = Luan.error | |
1641 | 4 local ipairs = Luan.ipairs or error() |
1135 | 5 local do_file = Luan.do_file or error() |
1641 | 6 local Number = require "luan:Number.luan" |
7 local long = Number.long or error() | |
1135 | 8 local Io = require "luan:Io.luan" |
1418 | 9 local Hosted = require "luan:host/Hosted.luan" |
1641 | 10 local WebHandler = require "java:luan.host.WebHandler" |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
11 local Logging = require "luan:logging/Logging.luan" |
1641 | 12 |
13 local log_to_console = false | |
14 for _, arg in ipairs{...} do | |
15 if arg == "console" then | |
16 log_to_console = true | |
17 end | |
18 end | |
19 if not log_to_console then | |
20 local LuanLogger = require "java:luan.modules.logging.LuanLogger" | |
21 local Layouts = require "java:goodjava.logger.Layouts" | |
22 local DateLayout = require "java:goodjava.logger.DateLayout" | |
23 local ListLayout = require "java:goodjava.logger.ListLayout" | |
24 local Level = require "java:goodjava.logger.Level" | |
25 local RollingFileAppender = require "java:goodjava.logger.RollingFileAppender" | |
26 local LevelAppender = require "java:goodjava.logger.LevelAppender" | |
27 local ListAppender = require "java:goodjava.logger.ListAppender" | |
28 | |
29 local one_mb = long(1024*1024) | |
30 local layout = ListLayout.new(DateLayout.new("yyyy-MM-dd HH:mm:ss,SSS")," ",Layouts.LEVEL_PADDED," ",Layouts.LOGGER," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE) | |
31 | |
32 local function new_appender(file,level) | |
33 local appender = RollingFileAppender.new(layout, file) | |
34 appender.maxFileSize = one_mb | |
35 appender = LevelAppender.new(appender,level) | |
36 return appender | |
37 end | |
38 | |
39 local err = new_appender("logs/luan_error.log",Level.ERROR) | |
40 local warn = new_appender("logs/luan_warn.log",Level.WARN) | |
41 local info = new_appender("logs/luan_info.log",Level.INFO) | |
42 local appender = ListAppender.new(err,warn,info) | |
43 LuanLogger.configure(appender) | |
44 end | |
45 | |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
46 local logger = Logging.logger "run" |
1641 | 47 |
48 | |
49 WebHandler.config = require "classpath:luan/host/Config.luan" | |
1418 | 50 Hosted.WebHandler = WebHandler |
1135 | 51 |
1200
1e351b0d385e
move remove_old_web_log_files to luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1188
diff
changeset
|
52 |
1135 | 53 local here = Io.schemes.file(".").canonical().to_string() |
1418 | 54 Hosted.sites_dir = here.."/sites/" |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
55 |
1135 | 56 do_file "classpath:luan/host/main.luan" |
57 | |
58 | |
59 -- web server | |
60 | |
1402
27efb1fcbcb5
move luan.lib to goodjava
Franklin Schmidt <fschmidt@gmail.com>
parents:
1383
diff
changeset
|
61 local Server = require "java:goodjava.webserver.Server" |
1603 | 62 local SafeHandler = require "java:goodjava.webserver.handlers.SafeHandler" |
1135 | 63 |
1418 | 64 local handler = WebHandler.new(Hosted.sites_dir) |
1603 | 65 handler = SafeHandler.new(handler) |
1185
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
66 local server = Server.ForAddress.new("127.0.0.1",8080,handler) |
1135 | 67 server.start() |
1209
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
68 |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
69 |
1418 | 70 local sites_dir = Io.schemes.file(Hosted.sites_dir) |
1209
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
71 for _, site_dir in ipairs(sites_dir.children()) do |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
72 local name = site_dir.name() |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
73 WebHandler.loadHandler(name) |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
74 end |