Denys Vuika 94e2e83e73
ADF CLI fixes (#5674)
* safety checks and better path eval

* do not execute command on help

* rewrite 'update-version' command
2020-05-06 11:18:38 +01:00

41 lines
1.0 KiB
JavaScript
Executable File

#!/usr/bin/env node
// tslint:disable: adf-file-name
// tslint:disable: no-var-requires
const minimist = require('minimist');
const path = require('path');
const fs = require('fs');
const args = minimist(process.argv.slice(2), {
boolean: ['verbose']
});
if (args._.length === 0) {
console.error('Error: no commands provided');
process.exit(1);
}
const scriptName = args._.shift();
const scriptPath = process.env.DEVELOP
? path.resolve(path.join(__dirname, '../dist/scripts', scriptName))
: path.resolve(path.join(__dirname, '../scripts', scriptName));
if (!fs.existsSync(`${scriptPath}.js`)) {
console.error(`Error: command ${scriptName} not found.`);
process.exit(1);
}
const cwd = process.cwd();
try {
Promise.resolve()
.then(() => require(scriptPath).default(args, cwd))
.then(exitCode => process.exit(exitCode || 0))
.catch(err => {
console.error(err && err.stack);
process.exit(99);
});
} catch (err) {
console.error(err.stack);
process.exit(99);
}