annotate src/luan/host/Init.luan @ 1315:5763597ca5c0

add DomainHandler
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 30 Jan 2019 01:21:49 -0700
parents 60d013d5c7ef
children 307e76ccd0d6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
1238
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
3 local do_file = Luan.do_file or error()
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local String = require "luan:String.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local gsub = String.gsub or error()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local Init = {}
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10 local dir, domain = ...
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 -- logging
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 java()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 local Logger = require "java:org.apache.log4j.Logger"
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
17 local Level = require "java:org.apache.log4j.Level"
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
18 local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout"
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
19 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender"
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 local root = gsub(domain,"\.",":")
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
23 local logger = Logger.getLogger(root)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
24 local has_appenders = logger.getAllAppenders().hasMoreElements()
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
25 if not has_appenders then
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
26 logger.setAdditivity(false)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
27 local layout = EnhancedPatternLayout.new("%d %-5p %c{-1} - %m%n")
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
28 local log_dir = dir.."/site/private/local/logs/"
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
30 local function add_appender(file,level)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
31 local appender = RollingFileAppender.new(layout, log_dir..file)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
32 appender.setMaxFileSize("1MB")
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
33 logger.addAppender(appender)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
34 if level ~= logger.getEffectiveLevel() then
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
35 appender.setThreshold(level)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
36 end
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
37 end
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
39 add_appender("error.log",Level.ERROR)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
40 add_appender("warn.log",Level.WARN)
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
41 add_appender("info.log",Level.INFO)
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43
1199
3995cbe5b00a simplify logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1185
diff changeset
44 local Logging = require "luan:logging/Logging.luan"
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
45
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
46 local old_logger = Logging.logger
1239
2612e4307987 minor luanhost logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1238
diff changeset
47 Logging.luanhost_logger = old_logger
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49 function Logging.root_logger()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 return old_logger(root)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53 function Logging.logger(name)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 return old_logger( root .. "." .. name )
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 Init.logger_root = root.."."
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
60 -- set vars
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
61
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
62 local Io = require "luan:Io.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
63 local Http = require "luan:http/Http.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
64 local Hosting = require "luan:host/Hosting.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
65 local Mail = require "luan:mail/Mail.luan"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
66
1238
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
67 Init.password = do_file(dir.."/info.luan").password or error()
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
68
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
69 Http.dir = "file:"..dir.."/site"
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
70
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
71 function Io.schemes.site(path,loading)
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
72 return Io.uri( Http.dir..path, loading )
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
73 end
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
74
1315
5763597ca5c0 add DomainHandler
Franklin Schmidt <fschmidt@gmail.com>
parents: 1312
diff changeset
75 Http.domain = domain
1235
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
76 Io.password = Init.password
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
77
22228c12b6dd fix luanhost thread logging
Franklin Schmidt <fschmidt@gmail.com>
parents: 1199
diff changeset
78
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
79 -- mail - fix later
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
80
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
81 Hosting.send_mail = Mail.Sender{
1312
Franklin Schmidt <fschmidt@gmail.com>
parents: 1239
diff changeset
82 host = "smtpcorp.com"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1239
diff changeset
83 username = "smtp@luan.ws" -- ?
Franklin Schmidt <fschmidt@gmail.com>
parents: 1239
diff changeset
84 password = "luanhost"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1239
diff changeset
85 port = 2525
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
86 }.send
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
87
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
88
1238
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
89 -- callback to luanhost code
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
90 do_file "file:init.luan"
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
91
3d29033de2bf changes for https
Franklin Schmidt <fschmidt@gmail.com>
parents: 1235
diff changeset
92
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
93 return Init