module system - add extra configuration variables at restart

This commit is contained in:
Unitech 2015-03-04 23:37:26 -05:00
parent 3adffde39e
commit ace299465e
2 changed files with 23 additions and 14 deletions

View File

@ -1018,8 +1018,10 @@ CLI._operate = function(action_name, process_name, envs, cb) {
*/
if (full_detail && typeof(ids[0]) !== 'undefined' && full_detail[ids[0]] &&
full_detail[ids[0]].pm2_env && full_detail[ids[0]].pm2_env.pmx_module === true) {
var module_conf = Configuration.getAllSync();
util._extend(envs, module_conf);
var additional_env = Modularizer.getAdditionalConf(process_name);
console.log(additional_env, process_name);
util._extend(envs, additional_env);
}

View File

@ -27,8 +27,6 @@ var UX = require('./CliUx.js');
// [X] API normalization = dont block adoption, find common way to transform current software into propack
function startModule(opts, cb) {
var module_conf = Configuration.getAllSync() || {};
/** SCRIPT
* Open file and make the script detection smart
*/
@ -64,16 +62,7 @@ function startModule(opts, cb) {
/**
* Only merge configuration variables for this module
*/
var additional_env = {};
if (!module_conf[package_json.name]) {
additional_env = {};
additional_env[package_json.name] = {};
}
else {
additional_env = Common.serialize(module_conf[package_json.name]);
additional_env[package_json.name] = JSON.stringify(module_conf[package_json.name]);
}
var additional_env = Modularizer.getAdditionalConf(package_json.name);
// Start the module
CLI.startJson(package_json, {
@ -88,6 +77,24 @@ function startModule(opts, cb) {
});
}
Modularizer.getAdditionalConf = function(app_name) {
if (!app_name) throw new Error('No app_name defined');
var module_conf = Configuration.getAllSync();
var additional_env = {};
if (!module_conf[app_name]) {
additional_env = {};
additional_env[app_name] = {};
}
else {
additional_env = Common.serialize(module_conf[app_name]);
additional_env[app_name] = JSON.stringify(module_conf[app_name]);
}
return additional_env;
};
Modularizer.launchAll = function(cb) {
var module_folder = p.join(cst.PM2_ROOT_PATH, 'node_modules');