Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var fs = require('fs');
- var changeProperty = function(property, value, template){
- var pattern = new RegExp('(^|\\n)(# )?(.*)('+property+'): ([^#\\n$]*)(.*)(\\n|$)?');
- var str = pattern.exec(template);
- if (!str){
- template += "\n" +property+": "+value;
- } else{
- if (RegExp.$2)
- template += "\n" +property+": "+value
- else
- template = template.replace(RegExp.$5, value);
- // template = template.replace(RegExp.$2," ");
- };
- return template;
- };
- var changePropertyjs = function(property, value, template){
- var pattern = new RegExp('(^|\\n)(.*)('+property+'): ([^\/\/\\n$]*)(.*)(\\n|$)?');
- var str = pattern.exec(template);
- if (!str){
- template += "\n" +property+": "+value;
- } else{
- template = template.replace(RegExp.$4, value);
- // template = template.replace(RegExp.$2," ");
- };
- return template;
- };
- var makeConfigBox = function (par, cb){
- var template = fs.readFileSync(par.path+"/config.yml.template", 'utf8', function (e){
- if (e)
- cb(e);
- });
- var templatejs = fs.readFileSync(par.path+"/config.js.template", 'utf8', function (e){
- if (e)
- cb(e);
- });
- template = changeProperty ('BOX_ENABLED', 'true', template);
- template = changeProperty ('CLUSTER_INSTANCE_ROLE', '\'CLUSTER_MASTER_CLIENT\'', template);
- if (par.settings){
- settingsyml = par.settings[0];
- for(var key in settingsyml){
- template = changeProperty (key, settingsyml[key], template);
- }
- settingsjs = par.settings[1];
- for(var key in settingsjs){
- templatejs = changePropertyjs (key, settingsjs[key], templatejs);
- }
- };
- fs.writeFile(par.path+"/config.yml",template, function(err){
- if (err) cb(err);
- fs.writeFile(path+"/config.js",templatejs, function(err){
- if (err) cb(err);
- cb;
- });
- });
- };
- var makeConfigCloud = function (par, cb) {
- var template = fs.readFileSync(par.path+"/config.yml.template", 'utf8', function (e){
- if (e) cb(e);
- });
- template = changeProperty ('CLUSTER_INSTANCE_ROLE', '\'CLUSTER_MASTER\'', template);
- if (par.settings){
- for(var key in par.settings){
- template = changeProperty (key, par.settings[key], template);
- };
- };
- fs.writeFile(par.path+"/config.yaml",template, function(err){
- if (err) cb(err);
- cb;
- });
- };
- function makeConfig(par, cb){
- switch (par.cfgtype) {
- case 'box':
- return makeConfigBox(par, function (err){
- cb&&cb(err);
- });
- case 'cloud':
- return makeConfigCloud(par, function (err){
- cb&&cb(err);
- });
- };
- var json = [{
- CLUSTER_SELF_TCP_PORT: 5555,
- SERVER_ADDRESS: '\'234234234\''
- },
- {
- BOX_ID: 'sdfsdfsd',
- SSL_CRT: 'sdfsdfsfsdfs',
- }];
- var par = {
- path:"/home/nata/3.2nm",
- cfgtype:'box',
- settings: json
- };
- makeConfig (par , function (data){
- console.log(data);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement