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