cmd-notepad
Version:
脚本命令记事本,管理多个可执行的脚本
139 lines (138 loc) • 4.88 kB
JavaScript
;
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;