UNPKG

rs-runner

Version:

RS is a CLI tool for quickly detecting package.json scripts, and running them.

95 lines (94 loc) 3.32 kB
#!/usr/bin/env node "use strict"; 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);