run 命令试用
This commit is contained in:
parent
4275120cba
commit
4b6508a606
108
kit/src/kitcommand.js
Normal file
108
kit/src/kitcommand.js
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
const shell = require("./shell");
|
||||||
|
const fs = require("fs");
|
||||||
|
const vm = require("node:vm");
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
init : function () {
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
regTo: function (parser) {
|
||||||
|
|
||||||
|
parser.addCmdLine("help", "打开在线帮助;", async function () {
|
||||||
|
const uConfig = await $context.get("uConfig")
|
||||||
|
shell.execSync("start " + uConfig.get("man"))
|
||||||
|
});
|
||||||
|
parser.addCmdLine("manu", "人工维护配置;", function () {
|
||||||
|
shell.execSync("start " + $sConfig.getUserConfigPath())
|
||||||
|
});
|
||||||
|
|
||||||
|
parser.addCmdLine("run [--file] [func]", "运行项目脚本;", function (cli) {
|
||||||
|
$logger.info("kit 当前执行目录 " + process.cwd());
|
||||||
|
const fs = require("fs");
|
||||||
|
|
||||||
|
let step = cli.getParamValue("func");
|
||||||
|
if (!step) {
|
||||||
|
step = "main"
|
||||||
|
}
|
||||||
|
|
||||||
|
let file = cli.getParamValue("file");
|
||||||
|
if (!file) {
|
||||||
|
file = "kit"
|
||||||
|
}
|
||||||
|
|
||||||
|
const stat = fs.existsSync(`./${file}.js`)
|
||||||
|
if (!stat) {
|
||||||
|
if (!cli.getParamValue("file")) {
|
||||||
|
fs.writeFileSync("./kit.js", `
|
||||||
|
async function main(){
|
||||||
|
console.log("hello kit!")
|
||||||
|
}
|
||||||
|
`);
|
||||||
|
} else {
|
||||||
|
$logger.info(`文件 ${file} 不存在`);
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const projectScript = fs.readFileSync("./kit.js", "utf-8");
|
||||||
|
const vm = require('node:vm');
|
||||||
|
const script = new vm.Script(projectScript + ";" + step + "()");
|
||||||
|
const context = {
|
||||||
|
animal: 'cat', count: 2, $logger
|
||||||
|
};
|
||||||
|
|
||||||
|
script.runInNewContext(context, {
|
||||||
|
timeout: 10 * 60 * 1000, breakOnSigint: true,
|
||||||
|
});
|
||||||
|
$logger.info("暂未实现");
|
||||||
|
});
|
||||||
|
|
||||||
|
parser.addCmdLine("config <key> [value]", "查询/设置配置;", async function (cli) {
|
||||||
|
let key = cli.getParamValue("key");
|
||||||
|
let value = cli.getParamValue("value");
|
||||||
|
const uConfig = await $context.get("uConfig")
|
||||||
|
if (null != key && null == value) {
|
||||||
|
let v = uConfig.get(key);
|
||||||
|
$logger.info("{} : {}", key, v);
|
||||||
|
} else if (null != key && null != value) {
|
||||||
|
uConfig.set(key, value);
|
||||||
|
$logger.info("set {} : {}", key, value);
|
||||||
|
} else {
|
||||||
|
$logger.error("参数异常");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
parser.addCmdLine("remote-check", "验证远程仓库;", async function () {
|
||||||
|
let remote = await $context.get("remote")
|
||||||
|
if (!(await remote.check())) {
|
||||||
|
$logger.error("远程仓库不可用")
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$logger.info("远程仓库可用")
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
parser.addCmdLine("publish", "发布到远程仓库;", async function () {
|
||||||
|
let remote = await $context.get("remote")
|
||||||
|
if (!(await remote.check())) {
|
||||||
|
$logger.error("远程仓库不可用")
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$logger.info("远程仓库可用")
|
||||||
|
}
|
||||||
|
remote.publish()
|
||||||
|
});
|
||||||
|
parser.addCmdLine("install [module]", "安装/更新模块;", async function (cli) {
|
||||||
|
let remote = await $context.get("remote")
|
||||||
|
if (!(await remote.check())) {
|
||||||
|
$logger.error("远程仓库不可用")
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
$logger.info("远程仓库可用")
|
||||||
|
}
|
||||||
|
remote.install(cli.getParamValue("module"))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user