fix(installer/updater): 修复版本显示和更新流程问题

- 在installer.lua中添加INSTALLER_VERSION常量替代_VERSION
- 更新update.lua中的版本检查流程和用户提示
- 改进updater的界面显示,添加顶部名称栏
- 统一更新确认提示为小写[y/n]
- 将"stage"改为更准确的"step"描述
This commit is contained in:
2025-09-01 09:42:28 +08:00
parent 6f0a33f75d
commit 44a44caffe
2 changed files with 29 additions and 6 deletions

View File

@@ -9,11 +9,33 @@ if not package.loaded.http then
io.stderr:write("The HTTP API is disabled and the updater cannot continue. Please enable the HTTP API in the ComputerCraft configuration and try again.\n")
return
end
term.at(1, 1).clear()
term.at(1,1).clear()
-- 程序顶部名称栏
local term = require("term")
local colors = require("colors")
-- 保存当前颜色设置
local old_fg = term.getTextColor()
local old_bg = term.getBackgroundColor()
-- 设置名称栏颜色并显示
term.setTextColor(colors.white)
term.setBackgroundColor(colors.cyan)
term.at(1, 1).clearLine()
term.at(1, 1).write("=== LeonOS Updater ===")
-- 恢复颜色设置
term.setTextColor(old_fg)
term.setBackgroundColor(old_bg)
term.at(1, 2)
-- 只清除顶栏以下的区域
for y=2, term.getSize() do
term.at(1, y).clearLine()
end
term.at(1, 2)
textutils.coloredPrint(colors.yellow,
"LeonOS Updater (Stage 1)\n===========================")
"LeonOS Updater (Step 1)\n===========================")
print("Checking for update...")
@@ -36,7 +58,7 @@ if newVersion and (oldVersion ~= newVersion) or (...) == "-f" then
colors.red, oldVersion, colors.yellow, " -> ", colors.lime,
newVersion or oldVersion)
io.write("Apply update? [y/N]: ")
io.write("Apply update? [y/n]: ")
if io.read() ~= "y" then
textutils.coloredPrint(colors.red, "Not applying update.")
return
@@ -45,7 +67,7 @@ if newVersion and (oldVersion ~= newVersion) or (...) == "-f" then
textutils.coloredPrint(colors.green, "Applying update.")
local handle, err = http.get(base.."updater.lua", nil, true)
if not handle then
error("Failed downloading stage 2: " .. err, 0)
error("Failed downloading step 2: " .. err, 0)
end
local data = handle.readAll()