Mercurial Hosting > luan
comparison src/luan/host/init.luan @ 1392:002152af497a
hosted postgres
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 06 Sep 2019 00:19:47 -0600 |
parents | 6617763dfd76 |
children | cc0dbca576dc |
comparison
equal
deleted
inserted
replaced
1391:94f48cc76de8 | 1392:002152af497a |
---|---|
3 local do_file = Luan.do_file or error() | 3 local do_file = Luan.do_file or error() |
4 local String = require "luan:String.luan" | 4 local String = require "luan:String.luan" |
5 local gsub = String.gsub or error() | 5 local gsub = String.gsub or error() |
6 | 6 |
7 | 7 |
8 local dir, domain, logging = ... | 8 local dir, domain = ... |
9 | 9 |
10 | 10 |
11 -- logging | 11 -- logging |
12 | 12 |
13 if logging then | 13 do |
14 require "java" | 14 require "java" |
15 local Log4j = require "java:luan.modules.logging.Log4j" | 15 local Log4j = require "java:luan.modules.logging.Log4j" |
16 local Level = require "java:org.apache.log4j.Level" | 16 local Level = require "java:org.apache.log4j.Level" |
17 local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout" | 17 local EnhancedPatternLayout = require "java:org.apache.log4j.EnhancedPatternLayout" |
18 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" | 18 local RollingFileAppender = require "java:org.apache.log4j.RollingFileAppender" |
33 | 33 |
34 add_appender("error.log",Level.ERROR) | 34 add_appender("error.log",Level.ERROR) |
35 add_appender("warn.log",Level.WARN) | 35 add_appender("warn.log",Level.WARN) |
36 add_appender("info.log",Level.INFO) | 36 add_appender("info.log",Level.INFO) |
37 end | 37 end |
38 | |
39 | 38 |
40 | 39 |
41 -- set vars | 40 -- set vars |
42 | 41 |
43 local Io = require "luan:Io.luan" | 42 local Io = require "luan:Io.luan" |
64 password = "luanhost" | 63 password = "luanhost" |
65 port = 2525 | 64 port = 2525 |
66 }.send | 65 }.send |
67 | 66 |
68 | 67 |
68 | |
69 | |
70 -- postgres | |
71 | |
72 local Sql = require "luan:sql/Sql.luan" | |
73 local database = Sql.database or error() | |
74 local Logging = require "luan:logging/Logging.luan" | |
75 local logger = Logging.logger "init" | |
76 | |
77 local fn = Luan.load_file("file:postgres.luan") or error() | |
78 local pg = fn() | |
79 | |
80 function Hosting.postgres_spec() | |
81 logger.info("pg="..pg.." domain="..domain) | |
82 if pg == nil then | |
83 return nil | |
84 end | |
85 local spec = { | |
86 class = "org.postgresql.Driver" | |
87 url = "jdbc:postgresql://localhost:5432/"..domain | |
88 user = domain | |
89 password = Io.password | |
90 } | |
91 local db = database(pg) | |
92 local exists = db.query("select datname from pg_database where datname=?",domain)() ~= nil; | |
93 logger.info("exists "..exists) | |
94 if not exists then | |
95 db.update( [[create user "]]..spec.user..[[" with encrypted password ']]..spec.password..[[']] ) | |
96 db.update( [[create database "]]..domain..[[" owner "]]..spec.user..[["]] ) | |
97 end | |
98 db.close() | |
99 return spec | |
100 end | |
101 | |
102 | |
103 | |
104 | |
105 | |
69 -- callback to luanhost code | 106 -- callback to luanhost code |
70 do_file "file:init.luan" | 107 do_file "file:init.luan" |
71 | 108 |
72 | 109 |
73 | 110 |