/* Copyright (c) 2014 IOnU Security Inc. All rights reserved Created May 2014 by Kendrick Webster K2Proxy/config.js - application settings */ "use strict"; var fs = require('fs'), json = require('./json');; function trace(m) { // comment or un-comment as needed for debugging: console.log(m); } function trace_info(m) { // comment or un-comment as needed for debugging: console.log(m); } var CONF_JSON_MAX_LENGTH = 256 * 1024; var listenPort = 8888; var daemonHost = 'localhost'; var daemonPort = 32000; // read and parse /sequencelogic/config/$SEQUENCE_LOGIC_ENV.conf.json if (typeof process.env.SEQUENCE_LOGIC_ENV === "string") { var env = process.env.SEQUENCE_LOGIC_ENV; trace_info('SEQUENCE_LOGIC_ENV = "' + env + '"'); var fname = '/sequencelogic/config/' + env + '.conf.json'; var fstr; try { var fd = fs.openSync(fname, 'r'); var buf = new Buffer(CONF_JSON_MAX_LENGTH); var n = fs.readSync(fd, buf, 0, CONF_JSON_MAX_LENGTH, null); fstr = buf.slice(0, n).toString('utf8'); } catch (e) { trace_info('Unable to read ' + fname + ':'); trace_info(e); } if (fstr && fstr.length) { trace_info('Reading ' + fname + ', ' + fstr.length + ' bytes'); try { var conf = JSON.parseMore(fstr); if (typeof conf.K2Proxy === 'object') { var c = conf.K2Proxy; if (typeof c.listenPort === 'string') { trace_info(' listenPort = "' + c.listenPort + '"'); listenPort = +c.listenPort; } if (typeof c.daemonHost === 'string') { trace_info(' daemonHost = "' + c.daemonHost + '"'); daemonHost = c.daemonHost; } if (typeof c.daemonPort === 'string') { trace_info(' daemonPort = "' + c.daemonPort + '"'); daemonPort = +c.daemonPort; } } else { trace_info('Config file lacks a K2Proxy section: ' + fname); } } catch (e) { trace_info('Unable to parse ' + fname + ':'); trace_info(e); } } else { trace_info('WARNING: config file is empty: ' + fname); } } else { trace_info('SEQUENCE_LOGIC_ENV is not set, skipping conf.json parsing'); } trace_info("command-line:"); process.argv.forEach(function (val, index, array) { trace_info(' ' + index + ': ' + val); switch (index) { case 2: listenPort = +val; break; case 3: daemonHost = val; break; case 4: daemonPort = +val; break; } }); exports.listenPort = listenPort; exports.daemonHost = daemonHost; exports.daemonPort = daemonPort;