terraform-plus
Version:
Terraform Plus
40 lines (28 loc) • 1.06 kB
JavaScript
;
const Env = require('../src/helpers/env');
const spawn = require('child_process').spawn;
const pjson = require('../package');
const dependencies = pjson.peerDependencies || {};
// Read npm parameters passed to original command
const forceNoPeer = JSON.parse(
(process.env.npm_config_argv || '{"original":[]}').trim()
).original.map(a => a.toLowerCase()).indexOf('--no-peer') !== -1;
if (Env.isCI || forceNoPeer) {
console.log('Skip installation of peerDependencies whilst either in TravisCI or forced by --no-peer flag');
process.exit(0);
}
const dependenciesVector = [];
Object.keys(dependencies).map(key => {
const dependency = `${ key }@${ dependencies[key] }`;
dependenciesVector.push(dependency);
});
console.log('Ensure peerDependencies are installed');
const options = [ 'install' ];
if (Env.isGlobalInstallation) {
options.push('-g');
} else {
options.push('--no-save');
}
spawn('npm', options.concat(dependenciesVector), { stdio: 'inherit' })
.on('close', code => process.exit(code));