更新功能实现
This commit is contained in:
25
index.js
25
index.js
@ -1,14 +1,35 @@
|
||||
#!/usr/bin/env node
|
||||
import color from "picocolors";
|
||||
import { showMainMenu } from "./lib/menu.js";
|
||||
import { execSync } from "child_process";
|
||||
import { createRequire } from "module";
|
||||
import { showMainMenu, setUpdateInfo } from "./lib/menu.js";
|
||||
import { checkUpdate } from "./lib/update.js";
|
||||
|
||||
await checkUpdate();
|
||||
const require = createRequire(import.meta.url);
|
||||
const pkg = require("./package.json");
|
||||
|
||||
const updateResult = await checkUpdate();
|
||||
if (updateResult) {
|
||||
setUpdateInfo(updateResult);
|
||||
}
|
||||
|
||||
while (true) {
|
||||
const selected = await showMainMenu();
|
||||
|
||||
console.clear();
|
||||
|
||||
if (selected.isUpdate) {
|
||||
console.log(color.cyan("\n正在更新...\n"));
|
||||
try {
|
||||
execSync(`npm i -g ${pkg.name}@latest`, { stdio: "inherit" });
|
||||
console.log(color.green("\n✅ 更新完成!请重新运行 yinx\n"));
|
||||
process.exit(0);
|
||||
} catch {
|
||||
console.log(color.red("\n❌ 更新失败,请手动运行: npm i -g " + pkg.name + "@latest\n"));
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
console.log(color.cyan("\n正在启动: " + selected.name + "...\n"));
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user