dmc
Version:
Cross-platform, developer cli tool for Salesforce
73 lines (58 loc) • 1.82 kB
JavaScript
var config = require('../lib/config');
var logger = require('../lib/logger');
var cliUtil = require('../lib/cli-util');
var user = require('../lib/user');
var _ = require('lodash');
var resolve = require('../lib/resolve');
var run = module.exports.run = function(opts, cb) {
return resolve(cb, function(){
var cfg;
if(opts.global) {
logger.log('setting global default org');
cfg = config.global();
} else {
logger.log('setting local default org');
cfg = config.local();
}
return Promise.resolve()
.then(function() {
return user.hasCredential(opts.org);
})
// check that the org has a login
.then(function(exists) {
if(!exists) {
throw new Error('login for org not found: ' + opts.org);
}
return cfg.load();
})
// determine the proper configuration to update and
// save it
.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');
}
logger.log('setting default org: ' + opts.org);
cfg.set('default_org', opts.org);
logger.log('saving configuration');
return cfg.save();
})
// finsh with a log
.then(function(){
logger.success('configuration saved');
});
});
};
module.exports.cli = function(program) {
program.command('use <org>')
.description('quickly set your default org in your configuration')
.option('-g, --global', 'Set your default org in your global configuration')
.action(function(org, opts) {
opts.org = org;
return cliUtil.executeRun(run)(opts);
});
};