diff options
Diffstat (limited to 'src/DillerConfig.js')
-rw-r--r-- | src/DillerConfig.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/DillerConfig.js b/src/DillerConfig.js new file mode 100644 index 0000000..84afe42 --- /dev/null +++ b/src/DillerConfig.js @@ -0,0 +1,67 @@ +var fs = require('fs'); +var bunyan = require('bunyan'); + +function isProd() { + return process.env.NODE_ENV == 'prod'; +} + +var mqttUrl = process.env.MQTT_URL || 'mqtt://trygvis.io'; + +var postgresqlConfig = { + host: process.env.DB_HOST || '/var/run/postgresql', + database: process.env.DB_DATABASE || 'diller', + user: process.env.DB_USER || 'diller', + password: process.env.DB_PASSWORD || 'diller' +}; + +var log; + +function configureLogging(app) { + if (log) { + return; + } + + var cfg = { + name: app + }; + + if (isProd()) { + cfg.streams = [ + { + level: 'warn', + stream: process.stdout + }, + { + level: 'debug', + path: 'log/diller-' + app + '.log' + } + ]; + + var stat; + try { + stat = fs.lstatSync('log'); + } catch (e) { + // Assume this to to be ENOENT + fs.mkdirSync('log'); + } + if (stat && !stat.isDirectory()) { + throw 'Not a directory: log'; + } + } + + log = bunyan.createLogger(cfg); +} + +function DillerConfig() { + return { + isProd: isProd, + mqttUrl: mqttUrl, + postgresqlConfig: postgresqlConfig, + configureLogging: configureLogging, + log: function () { + return log; + } + }; +} + +module.exports = DillerConfig; |