Commit e54d137f authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

configuration context

parent 1fe7c6d6
var CONFIG_PATH = './conf/config'; var _dot = require('dot-prop');
var CONFIG_PATH = __dirname + '/conf/config';
var cfg = require(CONFIG_PATH); var cfg = require(CONFIG_PATH);
module.exports.config = cfg; module.exports.config = cfg;
module.exports.getConfig = function(name,def){ module.exports.getConfig = function(name,def,opt){
var option = {};
var def_val = def || '';
var ret=def_val;
if(typeof opt == 'object'){option=opt;}
if(typeof option.env == 'undefined'){option.env=true;}
if(typeof name != 'string' || name=='.'){name='';}
var bs_cfg={};
if(option.env){
bs_cfg = envcnf('',cfg);
}else{
bs_cfg = cfg;
}
if(typeof name != 'string' || name=='.' || name =='' || name == '*'){
ret = bs_cfg;
}else{
ret = _dot.get(bs_cfg,name,def_val);
}
return ret;
}
var envcnf = function(name,init_obj){
var obj=init_obj || {};
var env = process.env;
var name_pref = 'bs.config';
if(name){name_pref=name_pref + '.' + name;}
if(env[name_pref]){obj=env[name_pref];}
var nfull = name_pref + '.';
Object.keys(env).forEach((k)=>{
if(k.startsWith(nfull)){
var dotkey = k.substring(nfull.length);
_dot.set(obj,dotkey,env[k]);
}
});
return obj;
} }
module.exports.getEnvConf = envcnf
module.exports.getLib = function(name){ module.exports.getLib = function(name){
if(name) if(name)
...@@ -40,5 +83,3 @@ module.exports.getUnixSocketUrl = function(name){ ...@@ -40,5 +83,3 @@ module.exports.getUnixSocketUrl = function(name){
var sockname = name || 'test.sock'; var sockname = name || 'test.sock';
return 'unix://' + __dirname + '/tmp/' + sockname; return 'unix://' + __dirname + '/tmp/' + sockname;
} }
//module.exports.socket_dir = __dirname + '/tmp';
//module.exports.tmp_dir = __dirname + '/tmp';
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
"bson": "^0.5.6", "bson": "^0.5.6",
"buffalo": "^0.1.3", "buffalo": "^0.1.3",
"dateformat": "^1.0.12", "dateformat": "^1.0.12",
"dot-object": "^1.9.0", "dot-prop": "^5.1.0",
"express": "^4.14.0", "express": "^4.14.0",
"express-jwt": "^5.3.1", "express-jwt": "^5.3.1",
"ioredis": "^2.5.0", "ioredis": "^2.5.0",
......
var ctx = require('./context'); var ctx = require('./context');
var BSCONFIG = ctx.getConfig();
var ControllerAPI = ctx.getLib('coreservice/controller-api'); var ControllerAPI = ctx.getLib('coreservice/controller-api');
var api = ControllerAPI.create(ctx.config); var api = ControllerAPI.create(BSCONFIG);
api.start(); api.start();
var ctx = require('./context'); var ctx = require('./context');
var BSCONFIG = ctx.getConfig();
var SchedulerService = ctx.getLib('coreservice/scheduler'); var SchedulerService = ctx.getLib('coreservice/scheduler');
var StorageEventService = ctx.getLib('coreservice/storage-trigger'); var StorageEventService = ctx.getLib('coreservice/storage-trigger');
var ss = SchedulerService.create(ctx.config); var ss = SchedulerService.create(BSCONFIG);
ss.start(); ss.start();
var ses = StorageEventService.create(ctx.config); var ses = StorageEventService.create(BSCONFIG);
ses.start(); ses.start();
var ctx = require('./context'); var ctx = require('./context');
var HTTPListener = ctx.getLib('http-listener/main'); var HTTPListener = ctx.getLib('http-listener/main');
var BSCONFIG = ctx.getConfig();
var hs = HTTPListener.create(ctx.config); var hs = HTTPListener.create(BSCONFIG);
hs.start(); hs.start();
var ctx = require('./context'); var ctx = require('./context');
var NBUdpTrigger = ctx.getLib('triggers/trg-nbudp'); var NBUdpTrigger = ctx.getLib('triggers/trg-nbudp');
var BSCONFIG = ctx.getConfig();
var trg = NBUdpTrigger.create(ctx.config); var trg = NBUdpTrigger.create(BSCONFIG);
trg.start(); trg.start();
var ctx = require('./context'); var ctx = require('./context');
var SchedulerService = ctx.getLib('coreservice/scheduler'); var SchedulerService = ctx.getLib('coreservice/scheduler');
var BSCONFIG = ctx.getConfig();
var ss = SchedulerService.create(ctx.config); var ss = SchedulerService.create(BSCONFIG);
ss.start(); ss.start();
var ctx = require('./context'); var ctx = require('./context');
var StorageService = ctx.getLib('storage-service/main'); var StorageService = ctx.getLib('storage-service/main');
var BSCONFIG = ctx.getConfig();
var argv = require('minimist')(process.argv.slice(2)); var argv = require('minimist')(process.argv.slice(2));
...@@ -8,10 +8,10 @@ var argv = require('minimist')(process.argv.slice(2)); ...@@ -8,10 +8,10 @@ var argv = require('minimist')(process.argv.slice(2));
var m = {'read':"false",'write':"false"} var m = {'read':"false",'write':"false"}
if(argv['process-read']){m.read = "true";} if(argv['process-read']){m.read = "true";}
if(argv['process-write']){m.write = "true";} if(argv['process-write']){m.write = "true";}
if(argv['api-port']){ctx.config.storage.api_port = Number(argv['api-port']);} if(argv['api-port']){BSCONFIG.storage.api_port = Number(argv['api-port']);}
//console.log(argv); //console.log(argv);
var ss = StorageService.create(ctx.config); var ss = StorageService.create(BSCONFIG);
if(m.read=="false" && m.write=="false") if(m.read=="false" && m.write=="false")
{ {
......
...@@ -16,7 +16,7 @@ var app = express(); ...@@ -16,7 +16,7 @@ var app = express();
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
var EventPub = ctx.getLib('lib/amqp/event-pub'); var EventPub = ctx.getLib('lib/amqp/event-pub');
var cfg = ctx.config; //var cfg = ctx.config;
var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock'); var SS_LISTEN = ctx.getUnixSocketUrl('ss.sock');
var SS_URL = ctx.getUnixSocketUrl('ss.sock'); var SS_URL = ctx.getUnixSocketUrl('ss.sock');
......
var ctx = require('./context'); var ctx = require('./context');
var JobWorker = ctx.getLib('jobworker/worker'); var JobWorker = ctx.getLib('jobworker/worker');
var BSCONFIG = ctx.getConfig();
var worker = JobWorker.create({'config':ctx.config,'name':'worker'}); var worker = JobWorker.create({'config':BSCONFIG,'name':'worker'});
worker.start(); worker.start();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment