Mercurial Hosting > luan
annotate src/luan/host/init.luan @ 1682:97cc73664ca8
improve RollingFileAppender
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 05 Jun 2022 10:51:43 -0600 |
parents | 570f3d483a31 |
children | cfbecf7af56f |
rev | line source |
---|---|
1135 | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | |
1238 | 3 local do_file = Luan.do_file or error() |
1611
f67f972bd648
make postgres.luan optional
Franklin Schmidt <fschmidt@gmail.com>
parents:
1454
diff
changeset
|
4 local Package = require "luan:Package.luan" |
1135 | 5 local String = require "luan:String.luan" |
6 local gsub = String.gsub or error() | |
1454 | 7 local Number = require "luan:Number.luan" |
8 local long = Number.long or error() | |
1135 | 9 |
10 | |
1392 | 11 local dir, domain = ... |
1135 | 12 |
13 | |
14 -- logging | |
15 | |
1454 | 16 local one_mb = long(1024*1024) |
17 | |
1392 | 18 do |
1353
8d95711f6615
replace java() with require "java"
Franklin Schmidt <fschmidt@gmail.com>
parents:
1351
diff
changeset
|
19 require "java" |
1454 | 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" | |
1365
6617763dfd76
fix logging and lucene backup
Franklin Schmidt <fschmidt@gmail.com>
parents:
1353
diff
changeset
|
28 |
1454 | 29 local layout = ListLayout.new(DateLayout.new("yyyy-MM-dd HH:mm:ss,SSS")," ",Layouts.LEVEL_PADDED," ",Layouts.LOGGER," - ",Layouts.MESSAGE,"\n",Layouts.THROWABLE) |
1199 | 30 local log_dir = dir.."/site/private/local/logs/" |
1135 | 31 |
1454 | 32 local function new_appender(file,level) |
1682
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
33 -- tmp |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
34 local Io = require "luan:Io.luan" |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
35 Io.uri("file:"..log_dir..file..".log.1").delete() |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
36 |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
37 local files = { log_dir..file..".log", log_dir..file.."_1.log" } |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
38 local appender = RollingFileAppender.new(layout, files) |
1454 | 39 appender.maxFileSize = one_mb |
40 appender = LevelAppender.new(appender,level) | |
41 return appender | |
1199 | 42 end |
1135 | 43 |
1682
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
44 local err = new_appender("error",Level.ERROR) |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
45 local warn = new_appender("warn",Level.WARN) |
97cc73664ca8
improve RollingFileAppender
Franklin Schmidt <fschmidt@gmail.com>
parents:
1640
diff
changeset
|
46 local info = new_appender("info",Level.INFO) |
1454 | 47 local appender = ListAppender.new(err,warn,info) |
48 LuanLogger.configure(appender) | |
1135 | 49 end |
50 | |
51 | |
1235
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
52 -- set vars |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
53 |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
54 local Io = require "luan:Io.luan" |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
55 local Http = require "luan:http/Http.luan" |
1418 | 56 local Hosted = require "luan:host/Hosted.luan" |
1235
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
57 local Mail = require "luan:mail/Mail.luan" |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
58 |
1330 | 59 Io.password = do_file(dir.."/info.luan").password or error() |
1235
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
60 |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
61 Http.dir = "file:"..dir.."/site" |
1414 | 62 Http.is_serving = true |
1235
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
63 |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
64 function Io.schemes.site(path,loading) |
1426 | 65 local u = Io.uri( Http.dir..path, loading ) |
66 u.uri_string = "site:"..path | |
67 return u | |
1235
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
68 end |
22228c12b6dd
fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents:
1199
diff
changeset
|
69 |
1315 | 70 Http.domain = domain |
1418 | 71 Hosted.is_hosted = true |
1392 | 72 |
73 | |
74 -- postgres | |
75 | |
1627 | 76 require "java" |
77 local WebHandler = require "java:luan.host.WebHandler" | |
1392 | 78 local Sql = require "luan:sql/Sql.luan" |
79 local database = Sql.database or error() | |
80 local Logging = require "luan:logging/Logging.luan" | |
81 local logger = Logging.logger "init" | |
82 | |
1627 | 83 local pg = WebHandler.config.postgres |
1392 | 84 |
1418 | 85 function Hosted.postgres_spec() |
1626 | 86 if pg == nil then |
1392 | 87 return nil |
88 end | |
89 local spec = { | |
90 class = "org.postgresql.Driver" | |
91 url = "jdbc:postgresql://localhost:5432/"..domain | |
92 user = domain | |
93 password = Io.password | |
94 } | |
95 local db = database(pg) | |
1407 | 96 local exists = db.query("select datname from pg_database where datname=?",domain).results() ~= nil; |
1394
8fe777ba5045
change postgres password
Franklin Schmidt <fschmidt@gmail.com>
parents:
1393
diff
changeset
|
97 --logger.info("exists "..exists) |
1392 | 98 if not exists then |
99 db.update( [[create user "]]..spec.user..[[" with encrypted password ']]..spec.password..[[']] ) | |
100 db.update( [[create database "]]..domain..[[" owner "]]..spec.user..[["]] ) | |
101 end | |
102 db.close() | |
103 return spec | |
104 end | |
105 | |
106 | |
1640
570f3d483a31
host - move https.luan into src
Franklin Schmidt <fschmidt@gmail.com>
parents:
1627
diff
changeset
|
107 do_file "classpath:luan/host/https.luan" |
1238 | 108 |
109 | |
1330 | 110 local LuanJava = require "java:luan.Luan" |
111 | |
1418 | 112 function Hosted.no_security(password) |
1627 | 113 WebHandler.config.password == password or error "wrong password" |
1330 | 114 LuanJava.setSecurity(nil) |
115 end | |
1351
21b153b4bcc4
better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
116 |
21b153b4bcc4
better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
117 function Http.reset_luan() |
21b153b4bcc4
better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
118 WebHandler.removeHandler(domain) |
21b153b4bcc4
better reset_luan for luanhost
Franklin Schmidt <fschmidt@gmail.com>
parents:
1332
diff
changeset
|
119 end |