1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
- The MIT License (MIT)
- Copyright (c) 2014-2018 Nikolai Suslov and the Krestianstvo.org project contributors. (https://github.com/NikolaySuslov/livecodingspace/blob/master/LICENSE.md)
- ADL VW Sandbox Apache 2.0 license(https://github.com/NikolaySuslov/livecodingspace/blob/master/licenses/LICENSE_ADL_Sandbox.md)
- */
- var fs = require('fs'),
- argv = require('optimist').argv
- // logger = require('./logger')
- function parseConfigOptions() {
- let conf = {
- sslOptions: {}
- }
- var ssl = (argv.s || argv.ssl);
- var pass = ((argv.w) ? (argv.w) : undefined);
- var sslOptions = {
- key: ((argv.k || argv.key) ? fs.readFileSync(argv.k || argv.key) : undefined),
- cert: ((argv.c || argv.cert) ? fs.readFileSync(argv.c || argv.cert) : undefined),
- ca: ((argv.t || argv.ca) ? fs.readFileSync(argv.t || argv.ca) : undefined),
- passphrase: JSON.stringify(pass)
- };
- conf.sslOptions = sslOptions;
- var port = ((argv.p || argv.port) ? (argv.p || argv.port) : undefined);
- if (!ssl) {
- if (global.configuration.ssl === undefined)
- ssl = false;
- if (global.configuration.ssl) {
- ssl = true;
- if (global.configuration.sslKey !== "")
- conf.sslOptions.key = fs.readFileSync(global.configuration.sslKey)
- if (global.configuration.sslCert !== "")
- conf.sslOptions.cert = fs.readFileSync(global.configuration.sslCert)
- if (global.configuration.sslCA !== "")
- conf.sslOptions.ca = fs.readFileSync(global.configuration.sslCA)
- if (global.configuration.certPwd !== "")
- conf.sslOptions.passphrase = JSON.stringify(global.configuration.certPwd)
- }
- }
- if (!port) {
- if (global.configuration.port === undefined)
- global.configuration.port = 3007
- if (global.configuration.port)
- port = global.configuration.port
- }
- conf.ssl = ssl;
- conf.port = port
- return conf
- }
- function readConfigFile() {
- var configSettings;
- var p = process.argv.indexOf('-config');
- //This is a bit ugly, but it does beat putting a ton of if/else statements everywhere
- var config = p >= 0 ? (process.argv[p + 1]) : './config.json';
- //logger.warn('loading config from ' + config);
- console.log('loading config from ' + config);
- //start the DAL, load configuration file
- try {
- configSettings = JSON.parse(fs.readFileSync(config).toString());
- //logger.info('Configuration read.');
- console.log('Configuration read.');
- } catch (e) {
- configSettings = {};
- //logger.error(e.message);
- //logger.error('Could not read config file. Loading defaults.');
- console.log(e.message);
- console.log('Could not read config file. Loading defaults.');
- }
- //save configuration into global scope so other modules can use.
- global.configuration = configSettings;
- }
- exports.parseConfigOptions = parseConfigOptions;
- exports.readConfigFile = readConfigFile;
|