Sleds/K2Proxy/config.js

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;