UNPKG

cmd-notepad

Version:

脚本命令记事本,管理多个可执行的脚本

139 lines (138 loc) 4.88 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.onInit = exports.onGs = exports.onRemove = exports.onAdd = exports.onRun = exports.onLs = void 0; const inquirer_1 = __importDefault(require("inquirer")); const utils_1 = require("./utils"); const cmdList_json_1 = __importDefault(require("../cmdList.json")); const fs_1 = __importDefault(require("fs")); const chalk_1 = __importDefault(require("chalk")); const common_1 = require("./common"); /** * cmds ls */ const onLs = () => { const _cmdList = cmdList_json_1.default; console.log(chalk_1.default.blue(Object.keys(_cmdList).join("\n"))); }; exports.onLs = onLs; /** * cmds run */ const onRun = () => __awaiter(void 0, void 0, void 0, function* () { const _cmdList = cmdList_json_1.default; const result = yield inquirer_1.default.prompt([ { type: "list", name: "name", message: "请选择脚本", choices: Object.keys(_cmdList), }, ]); (0, utils_1.RunScript)(result.name); }); exports.onRun = onRun; /** * cmds add */ const onAdd = () => __awaiter(void 0, void 0, void 0, function* () { const _cmdList = cmdList_json_1.default; //命令行交互工具 const result = yield inquirer_1.default.prompt([ { type: "input", name: "cmdName", message: "请输入脚本名称", validate(cmdName) { const keys = Object.keys(_cmdList); if (keys.includes(cmdName)) { return `${cmdName}脚本已存在`; } if (!cmdName.trim()) { return "脚本名称不能为空"; } return true; }, }, { type: "input", name: "main", message: "请输入脚本内容", validate(mainScript) { if (!mainScript.trim()) { return "脚本内容不能为空"; } return true; }, }, { type: "input", name: "onDestroy", message: "请输入切换或删除脚本之后执行的脚本内容,为空不执行", }, ]); const { cmdName, main, onDestroy } = result; _cmdList[cmdName] = { main, onDestroy, }; (0, utils_1.WriteToFile)(_cmdList, common_1.CMDLISTPATH); console.log(chalk_1.default.blue("添加完成")); }); exports.onAdd = onAdd; /** * cmds remove */ const onRemove = (name) => { (0, utils_1.RemoveScript)(name); }; exports.onRemove = onRemove; /** * cmds gs */ const onGs = () => __awaiter(void 0, void 0, void 0, function* () { // 将全局的cmdList.json文件复制到用户当前目录 (0, utils_1.CopyFileToPath)(common_1.CMDLISTPATH, common_1.CMDLISTPATH_USER); console.log(chalk_1.default.green(`已在当前目录生成${common_1.CMDLISTNAME}文件`)); }); exports.onGs = onGs; /** * cmds init */ const onInit = () => __awaiter(void 0, void 0, void 0, function* () { // 检查当前目录下是否有cmdList.json文件 if (!(0, utils_1.isPathExist)(common_1.CMDLISTPATH_USER)) { console.error(chalk_1.default.red(`当前目录下没有${common_1.CMDLISTNAME}文件`)); return; } const errorPrint = () => { console.error(chalk_1.default.red(`出错!请检查${common_1.CMDLISTNAME}文件内容`)); }; const content = fs_1.default.readFileSync(common_1.CMDLISTPATH_USER, "utf-8"); try { const contentJson = JSON.parse(content); if (!(0, utils_1.ValidateCMDList)(contentJson)) { errorPrint(); return; } // 将cmdList.json文件复制到当前目录 (0, utils_1.CopyFileToPath)(common_1.CMDLISTPATH_USER, common_1.CMDLISTPATH); (0, utils_1.ResetDestroy)(); console.log(chalk_1.default.green("初始化成功")); } catch (_a) { errorPrint(); } }); exports.onInit = onInit;