UNPKG

dmc

Version:

Cross-platform, developer cli tool for Salesforce

77 lines (59 loc) 1.85 kB
var config = require('../lib/config'); var logger = require('../lib/logger'); var cliUtil = require('../lib/cli-util'); var _ = require('lodash'); var resolve = require('../lib/resolve'); var run = module.exports.run = function(opts, cb) { return resolve(cb, function(){ if(!opts.items || opts.items.length === 0) { cb(new Error('You must supply config items to set')); } var cfg; if(opts.global) { logger.log('setting global config values'); cfg = config.global(); } else { logger.log('setting local config values'); cfg = config.local(); } return cfg.load() .then(function(){ if(!cfg.exists()) { if(!opts.global) { logger.log('no local configuration found.'); logger.log('try running ' + logger.highlight('dmc init') + ' to initialize a local config'); } throw new Error('config not found'); } var errors = 0; _.each(opts.items, function(item) { var parts = item.split('='); try { logger.list(parts[0] + ' => ' + parts[1]); cfg.set(parts[0], parts[1]); } catch(err) { logger.error(err.message); errors++; } }); if(errors > 0) { throw new Error('invalid config property inputs'); } logger.log('saving configuration'); return cfg.save(); }) .then(function(){ logger.success('configuration saved'); }); }); }; module.exports.cli = function(program) { program.command('config:set [items...]') .description('set configuration variables') .option('-g, --global', 'Set the global config variable. Otherwise, local variable set') .action(function(items, opts) { opts.items = items; return cliUtil.executeRun(run)(opts); }); };