annotate src/luan/host/Init.luan @ 1185:94cf2576a922

implement WebHandler for nginx
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 21 Feb 2018 21:22:16 -0700
parents 51d1342e25ad
children 3995cbe5b00a
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
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local String = require "luan:String.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local gsub = String.gsub or error()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local Io = require "luan:Io.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 local Http = require "luan:http/Http.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Hosting = require "luan:host/Hosting.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local Mail = require "luan:mail/Mail.luan"
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
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11 local Init = {}
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 local dir, domain = ...
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14
1181
51d1342e25ad luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents: 1180
diff changeset
15 Init.password = Luan.do_file(dir.."/info.luan").password or error()
1135
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 Http.dir = "file:"..dir.."/site"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 function Io.schemes.site(path,loading)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 return Io.uri( Http.dir..path, loading )
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 Hosting.domain = domain
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 Io.password = Init.password
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 -- logging
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 java()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 local Logger = require "java:org.apache.log4j.Logger"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31 local Logging = require "luan:logging/Logging.luan"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33 local root = gsub(domain,"\.",":")
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 Logging.layout = "%d %-5p %c{-1} - %m%n"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 Logging.file = dir.."/site/private/local/logs/luan.log"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 Logging.max_file_size = "1MB"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 local one_mb = 1048576
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 local log_dir = dir.."/site/private/local/logs/"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41 Logging.appenders = {
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 [log_dir.."error.log"] = "ERROR"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
43 [log_dir.."warn.log"] = "WARN"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
44 [log_dir.."info.log"] = "INFO"
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
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
47 Logging.log4j_root_logger = Logger.getLogger(root)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
48 Logging.log4j_root_logger.setAdditivity(false)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
49
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
50 local old_log_to_file = Logging.log_to_file
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
51
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
52 function Logging.log_to_file(file,logger_name)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
53 Io.schemes.file(file) -- security check
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
54 logger_name = logger_name and root .. "." .. logger_name
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
55 local appender = old_log_to_file(file,logger_name)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
56 appender.getMaximumFileSize() <= one_mb or error "Logging.max_file_size is too big"
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
57 return appender
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
58 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
59
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
60 local old_init = Logging.init
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
61
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
62 function Logging.init()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
63 Logging.appenders["System.err"] = nil
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
64 Logging.appenders["System.out"] = nil
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
65 old_init()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
66 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
67
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
68 Logging.init()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
69
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
70 local old_logger = Logging.logger
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
71
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
72 function Logging.root_logger()
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
73 return old_logger(root)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
74 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
75
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
76 function Logging.logger(name)
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
77 return old_logger( root .. "." .. name )
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
78 end
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
79
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
80 Init.logger_root = root.."."
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
81
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
82
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
83 -- mail - fix later
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
84
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
85 Hosting.send_mail = Mail.Sender{
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
86 host = "smtpcorp.com";
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
87 username = "smtp@luanhost.com"; -- ?
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
88 password = "luanhost";
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
89 port = 2525;
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
90 }.send
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
91
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
92
707a5d874f3e add luan.host
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
93 return Init