Mercurial Hosting > luan
view 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 |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local do_file = Luan.do_file or error() local String = require "luan:String.luan" local gsub = String.gsub or error() local Init = {} local dir, domain = ... -- logging java() local Logger = require "java:org.apache.log4j.Logger" local Level = require "java:org.apache.log4j.Level" local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout" local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" local root = gsub(domain,"\.",":") local logger = Logger.getLogger(root) local has_appenders = logger.getAllAppenders().hasMoreElements() if not has_appenders then logger.setAdditivity(false) local layout = EnhancedPatternLayout.new("%d %-5p %c{-1} - %m%n") local log_dir = dir.."/site/private/local/logs/" local function add_appender(file,level) local appender = RollingFileAppender.new(layout, log_dir..file) appender.setMaxFileSize("1MB") logger.addAppender(appender) if level ~= logger.getEffectiveLevel() then appender.setThreshold(level) end end add_appender("error.log",Level.ERROR) add_appender("warn.log",Level.WARN) add_appender("info.log",Level.INFO) end local Logging = require "luan:logging/Logging.luan" local old_logger = Logging.logger Logging.luanhost_logger = old_logger function Logging.root_logger() return old_logger(root) end function Logging.logger(name) return old_logger( root .. "." .. name ) end Init.logger_root = root.."." -- set vars local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Hosting = require "luan:host/Hosting.luan" local Mail = require "luan:mail/Mail.luan" Init.password = do_file(dir.."/info.luan").password or error() Http.dir = "file:"..dir.."/site" function Io.schemes.site(path,loading) return Io.uri( Http.dir..path, loading ) end Http.domain = domain Io.password = Init.password -- mail - fix later Hosting.send_mail = Mail.Sender{ host = "smtpcorp.com" username = "smtp@luan.ws" -- ? password = "luanhost" port = 2525 }.send -- callback to luanhost code do_file "file:init.luan" return Init