92 lines
2.8 KiB
JavaScript
92 lines
2.8 KiB
JavaScript
/*
|
|
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;
|