Commit 6478433e authored by Kamron Aroonrua's avatar Kamron Aroonrua 💬

environment map

parent 41d90907
[
{"env":"BSCONFIG_AMQP_TYPE","conf":"amqp.type"},
{"env":"BSCONFIG_AMQP_URL","conf":"amqp.url"}
{"env":"BSCONFIG_AMQP_URL","conf":"amqp.url"},
{"env":"BSCONFIG_MEMSTORE_TYPE","conf":"memstore.type"},
{"env":"BSCONFIG_MEMSTORE_URL","conf":"memstore.url"},
{"env":"BSCONFIG_STORAGE_REPOSITORY","conf":"storage.repository"},
{"env":"BSCONFIG_STORAGE_APIHOSTNAME","conf":"storage.api_hostname"},
{"env":"BSCONFIG_AUTH_SECRET_TEXT","conf":"auth.secret.value"}
]
\ No newline at end of file
module.exports = require('./default.json');
\ No newline at end of file
var _dot = require('dot-prop');
var CONFIG_PATH = __dirname + '/conf/config';
var ENV_MAP = __dirname + '/conf/env';
var cfg = require(CONFIG_PATH);
module.exports.config = cfg;
......@@ -16,7 +18,7 @@ module.exports.getConfig = function(name,def,opt){
var bs_cfg={};
if(option.env){
bs_cfg = envcnf('',cfg);
bs_cfg = envcnf(cfg);
}else{
bs_cfg = cfg;
}
......@@ -30,19 +32,27 @@ module.exports.getConfig = function(name,def,opt){
return ret;
}
var envcnf = function(name,init_obj){
var envcnf = function(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]);
var envmap = require(ENV_MAP);
// 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]);
// }
// });
if(!Array.isArray(envmap)){return obj;}
envmap.forEach((em)=>{
if(em.env && em.conf && env[em.env]){
_dot.set(obj,em.conf,env[em.env]);
}
});
......
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