更新功能实现

This commit is contained in:
yinsx
2025-12-22 09:43:46 +08:00
parent 29a7a1e626
commit dd99e932b4
8 changed files with 78 additions and 68 deletions

View File

@ -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 {