Mercurial Hosting > luan
view 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 |
line wrap: on
line source
require "luan:logging/init.luan" -- initialize logging local Luan = require "luan:Luan.luan" local error = Luan.error local do_file = Luan.do_file or error() local ipairs = Luan.ipairs or error() local Io = require "luan:Io.luan" local print = Io.print or error() local String = require "luan:String.luan" local Time = require "luan:Time.luan" local Thread = require "luan:Thread.luan" local Hosting = require "luan:host/Hosting.luan" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "run" java() local WebHandler = require "java:luan.host.WebHandler" Hosting.WebHandler = WebHandler local here = Io.schemes.file(".").canonical().to_string() Hosting.sites_dir = here.."/sites/" do_file "classpath:luan/host/main.luan" -- web server local Server = require "java:luan.webserver.Server" local ContentTypeHandler = require "java:luan.webserver.handlers.ContentTypeHandler" local SafeHandler = require "java:luan.webserver.handlers.SafeHandler" local webHandler = WebHandler.new(Hosting.sites_dir) local handler = webHandler handler = ContentTypeHandler.new(handler) handler = SafeHandler.new(handler) local server = Server.ForAddress.new("127.0.0.1",8080,handler) server.start() local function remove_old_web_log_files() local expired = Time.now() - Time.period{days=30} local sites_dir = Io.schemes.file(Hosting.sites_dir) for _, site in ipairs(sites_dir.children()) do local web = site.child("site/private/local/logs/web") for _, file in ipairs(web.children() or {}) do if file.last_modified() < expired then file.delete() end end end end Thread.schedule( Time.period{days=1}, true, Thread.safe(remove_old_web_log_files,logger) )