Mercurial Hosting > luan
annotate src/luan/host/run.luan @ 1188:9f5edbef3f55
remove old web log files
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 22 Feb 2018 23:21:06 -0700 |
parents | 83c8a5a47f70 |
children | 1e351b0d385e |
rev | line source |
---|---|
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
1 require "luan:logging/init.luan" -- initialize logging |
1135 | 2 local Luan = require "luan:Luan.luan" |
3 local error = Luan.error | |
4 local do_file = Luan.do_file or error() | |
5 local ipairs = Luan.ipairs or error() | |
6 local Io = require "luan:Io.luan" | |
7 local print = Io.print or error() | |
8 local String = require "luan:String.luan" | |
1188
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
9 local Time = require "luan:Time.luan" |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
10 local Thread = require "luan:Thread.luan" |
1135 | 11 local Hosting = require "luan:host/Hosting.luan" |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
12 local Logging = require "luan:logging/Logging.luan" |
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
13 local logger = Logging.logger "run" |
1182 | 14 java() |
1185
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
15 local WebHandler = require "java:luan.host.WebHandler" |
1182 | 16 Hosting.WebHandler = WebHandler |
1135 | 17 |
18 local here = Io.schemes.file(".").canonical().to_string() | |
19 Hosting.sites_dir = here.."/sites/" | |
1181
51d1342e25ad
luanhost password handling
Franklin Schmidt <fschmidt@gmail.com>
parents:
1135
diff
changeset
|
20 |
1135 | 21 do_file "classpath:luan/host/main.luan" |
22 | |
23 | |
24 -- web server | |
25 | |
1185
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
26 local Server = require "java:luan.webserver.Server" |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
27 local ContentTypeHandler = require "java:luan.webserver.handlers.ContentTypeHandler" |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
28 local SafeHandler = require "java:luan.webserver.handlers.SafeHandler" |
1135 | 29 |
1185
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
30 local webHandler = WebHandler.new(Hosting.sites_dir) |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
31 local handler = webHandler |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
32 handler = ContentTypeHandler.new(handler) |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
33 handler = SafeHandler.new(handler) |
94cf2576a922
implement WebHandler for nginx
Franklin Schmidt <fschmidt@gmail.com>
parents:
1182
diff
changeset
|
34 local server = Server.ForAddress.new("127.0.0.1",8080,handler) |
1135 | 35 server.start() |
1188
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
36 |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
37 |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
38 |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
39 local function remove_old_web_log_files() |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
40 local expired = Time.now() - Time.period{days=30} |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
41 local sites_dir = Io.schemes.file(Hosting.sites_dir) |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
42 for _, site in ipairs(sites_dir.children()) do |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
43 local web = site.child("site/private/local/logs/web") |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
44 for _, file in ipairs(web.children() or {}) do |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
45 if file.last_modified() < expired then |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
46 file.delete() |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
47 end |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
48 end |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
49 end |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
50 end |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
51 |
9f5edbef3f55
remove old web log files
Franklin Schmidt <fschmidt@gmail.com>
parents:
1187
diff
changeset
|
52 Thread.schedule( Time.period{days=1}, true, Thread.safe(remove_old_web_log_files,logger) ) |