quicksilver-cli
Version:
Cli tool for Quicksilver
52 lines (51 loc) • 1.93 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const all_comands_1 = require("../commands/all-comands");
const path = __importStar(require("path"));
const colors = require("colors");
async function runCommand(args) {
let commandConstructor;
if (args.length == 0) {
commandConstructor = all_comands_1.commandMap["help"];
}
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (!arg.startsWith('-')) {
commandConstructor = all_comands_1.getCommand(arg);
if (commandConstructor != null) {
args.splice(i, 1);
}
break;
}
}
if (commandConstructor == null) {
const commandNameOrAlias = args[0].replace(/^-{0,2}/, "");
if (all_comands_1.isCommand(commandNameOrAlias, all_comands_1.commandMap["version"])) {
commandConstructor = all_comands_1.commandMap["version"];
args.splice(0, 1);
}
else if (all_comands_1.isCommand(commandNameOrAlias, all_comands_1.commandMap["help"])) {
commandConstructor = all_comands_1.commandMap["help"];
args.splice(0, 1);
}
else {
process.stderr.write(colors.red.bold(`Unrecognized Command: ${path.basename(process.argv[1])} ${args.join(" ")}`) + "\n");
return;
}
}
const command = new commandConstructor(process.cwd(), args);
if (command.help) {
await command.printHelp();
}
else {
await command.handle();
}
}
exports.runCommand = runCommand;