rs-runner
Version:
RS is a CLI tool for quickly detecting package.json scripts, and running them.
95 lines (94 loc) • 3.32 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var commander_1 = require("commander");
var chalk_1 = __importDefault(require("chalk"));
var package_json_1 = require("../package.json");
var display_1 = require("./lib/display");
var scripts_1 = require("./lib/scripts");
var interactive_1 = require("./lib/interactive");
var pm_1 = require("./lib/pm");
var run_1 = require("./lib/run");
var program = new commander_1.Command();
var description = 'CLI tool for detecting and running package.json scripts';
program
.name('RS')
.description(description)
.version(package_json_1.version, '-v, --version')
.option('-l, --list', 'List all scripts')
.option('-h, --help', 'Show help')
.option('-i, --interactive', 'Run in interactive mode')
.option('-a, --add <key> <value>', 'Add new global script')
.option('-d, --delete [key]', 'Delete global script')
.option('--add-dir <key> <value>', 'Add new directory script')
.option('--delete-dir [key]', 'Delete directory script');
program.argument('[script]', 'Script to run').action(function (script) {
if (program.opts().help) {
program.outputHelp();
return;
}
if (program.opts().list) {
(0, display_1.listScripts)();
return;
}
if (program.opts().add) {
var key = program.opts().add;
if (program.args.length < 1) {
console.warn(chalk_1.default.yellow('Please specify a value for the script'));
return;
}
var value = program.args.slice(0).join(' ');
(0, scripts_1.addNewGlobalScript)(key, value);
return;
}
if (program.opts().addDir) {
var key = program.opts().addDir;
if (program.args.length < 1) {
console.warn(chalk_1.default.yellow('Please specify a value for the directory script'));
return;
}
var value = program.args.slice(0).join(' ');
(0, scripts_1.addNewDirectoryScript)(key, value);
return;
}
if (program.opts().delete) {
var key = program.opts().delete;
(0, scripts_1.removeGlobalScript)(key);
return;
}
if (program.opts().deleteDir) {
var key = program.opts().deleteDir;
(0, scripts_1.removeDirectoryScript)(key);
return;
}
if (program.opts().interactive) {
(0, interactive_1.interactiveMode)();
return;
}
if (!script) {
(0, display_1.listScripts)();
return;
}
// Order of check is
// package.json -> directory -> global -> runner <command>
var packageJsonScripts = (0, pm_1.getPackageJsonScripts)();
if (packageJsonScripts[script]) {
(0, run_1.runPackageScript)(script);
return;
}
var directoryScripts = (0, scripts_1.getDirectoryScripts)();
if (directoryScripts[script]) {
(0, run_1.runDirectoryScript)(script);
return;
}
var globalScripts = (0, scripts_1.getGlobalScripts)();
if (globalScripts[script]) {
(0, run_1.runGlobalScript)(script);
return;
}
(0, run_1.runRunnerCommand)(script);
});
program.parse(process.argv);