Mercurial Hosting > luan
annotate src/luan/host/run.luan @ 1802:ca98dee04e08 default tip
add Parsers.json_null
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 21 Apr 2024 21:25:15 -0600 |
parents | 97cc73664ca8 |
children |
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) | |
1682
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1642
diff
changeset
|
33 local files = { file..".log", file.."_1.log" } |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1642
diff
changeset
|
34 local appender = RollingFileAppender.new(layout, files) |
1641 | 35 appender.maxFileSize = one_mb |
36 appender = LevelAppender.new(appender,level) | |
37 return appender | |
38 end | |
39 | |
1682
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1642
diff
changeset
|
40 local err = new_appender("logs/luan_error",Level.ERROR) |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1642
diff
changeset
|
41 local warn = new_appender("logs/luan_warn",Level.WARN) |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1642
diff
changeset
|
42 local info = new_appender("logs/luan_info",Level.INFO) |
1641 | 43 local appender = ListAppender.new(err,warn,info) |
44 LuanLogger.configure(appender) | |
45 end | |
46 | |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
47 local logger = Logging.logger "run" |
1641 | 48 |
49 | |
50 WebHandler.config = require "classpath:luan/host/Config.luan" | |
1418 | 51 Hosted.WebHandler = WebHandler |
1135 | 52 |
1200
1e351b0d385e
move remove_old_web_log_files to luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1188
diff
changeset
|
53 |
1135 | 54 local here = Io.schemes.file(".").canonical().to_string() |
1418 | 55 Hosted.sites_dir = here.."/sites/" |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
56 |
1135 | 57 do_file "classpath:luan/host/main.luan" |
58 | |
59 | |
60 -- web server | |
61 | |
1402
27efb1fcbcb5
move luan.lib to goodjava
Franklin Schmidt <fschmidt@gmail.com>
parents:
1383
diff
changeset
|
62 local Server = require "java:goodjava.webserver.Server" |
1603 | 63 local SafeHandler = require "java:goodjava.webserver.handlers.SafeHandler" |
1135 | 64 |
1418 | 65 local handler = WebHandler.new(Hosted.sites_dir) |
1603 | 66 handler = SafeHandler.new(handler) |
1185
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
67 local server = Server.ForAddress.new("127.0.0.1",8080,handler) |
1135 | 68 server.start() |
1209
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
69 |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
70 |
1418 | 71 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
|
72 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
|
73 local name = site_dir.name() |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
74 WebHandler.loadHandler(name) |
cff4a7d778a6
luanhost - load all sites at start
Franklin Schmidt <fschmidt@gmail.com>
parents:
1200
diff
changeset
|
75 end |