Releases: MomoLawson/Quickstart-PC
Releases · MomoLawson/Quickstart-PC
Release list
v0.23.0 - JSON 抽象层 + 修复重复提示
第6项任务:JSON 抽象层
- 新增 validate_json() 统一 JSON 校验
- 新增 json_get() 统一 JSON 读取
- 新增 json_list_profiles() / json_get_profile_includes() / json_get_profile_field() / json_get_software_field()
- load_config() 使用 validate_json() 替代硬编码 jq empty
- 所有 JSON 操作统一走抽象层,优先 jq,fallback 到 python3
修复:
- 修复确认提示重复出现的问题
v0.22.0 - 修复 --fake-install bug
修复 --fake-install 参数解析 bug
- --fake-install 在参数解析阶段调用 log_warn,但 log_warn 尚未定义
- 用 echo 替代 log_warn 修复此问题
v0.21.0 - 项目结构重构
重构项目结构
- 新增 src/quickstart.sh 作为可读源码
- 新增 scripts/build.sh 用于生成 dist/quickstart.sh
- dist/quickstart.sh 作为发布产物
- 后续开发基于 src/quickstart.sh
v0.20.0 - 添加 --fail-fast
添加 --fail-fast 遇到错误时立即停止
- 默认行为:某个软件失败 → 记录 → 继续下一个
- --fail-fast:遇到错误立即停止安装
- 普通用户:尽量多装成功
- 高级用户:一旦出错立刻停
v0.19.0 - 添加 --skip 和 --only
添加 --skip 和 --only 软件过滤
- --skip SW 跳过指定软件(可多次使用)
- --only SW 只安装指定软件(可多次使用)
- 配合 --yes 更安全
- 减少误装和调试更方便
v0.18.0 - 添加 --show-profile
添加 --show-profile 显示指定套餐详情
- 显示 profile 名称、描述、图标
- 列出包含的软件列表
- 标记当前平台支持 (✓) 和不支持 (✗)
- 统计支持/不支持的软件数量
v0.17.0 - 第一阶段完成
🎉 Quickstart-PC v0.17.0 - 第一阶段完成
功能清单
配置系统
- JSON 配置格式(profiles.json)
- 内嵌远程 URL 自动加载
- --cfg-path / --cfg-url 自定义配置
- jq 解析 + python3 备用方案
- jq 未安装时自动安装
套餐与软件
- 5 套餐:推荐 / AI / 办公 / 开发者 / 媒体
- 17 软件完整支持
交互体验
- 语言选择菜单(方向键导航)
- 已安装检测(灰色标记已安装软件)
- 安装结果总结(Installed / Skipped / Failed / Warnings)
命令行参数
- --dev 开发模式
- --fake-install / --dry-run 假装安装
- --yes / -y 自动确认
- --lang 语言选择
安装
bash <(curl -fsSL https://github.com/MomoLawson/Quickstart-PC/releases/latest/download/quickstart.sh)v0.16.0 - 修复菜单光标移动
修复菜单光标移动逻辑
正确逻辑: 先绘制菜单,按键后逐行上移+清除
- 打印菜单项
- 等待按键
- 逐行: 上移一行 + 清除该行
- 循环回到绘制步骤
v0.15.0 - 修复菜单重绘叠加问题
修复菜单重绘时内容叠加问题
根因: tput sc/rc 在 macOS 终端不兼容,导致每次重绘在下方追加新行
修复: 使用 ANSI 转义码替代 tput sc/rc
- printf '\033[%dA' 上移光标
- printf '\033[2K' 清除行内容
v0.14.0 - 修复菜单显示致命错误
修复菜单内容被 $(...) 捕获导致命令执行错误
根因: show_profile_menu 和 show_software_menu 的显示输出通过 stdout 输出,
当被 local profile_idx=$(show_profile_menu) 调用时,
菜单内容被当作命令赋值给变量,导致 Bash 尝试执行菜单文本
修复: 将所有菜单显示输出重定向到 stderr (>&2),
只有返回值 (echo "$cursor") 走 stdout