Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix(install): make install-lite rerunnable after interrupted setup#138

Draft
ljluestc wants to merge 1 commit into
wanikua:mainwanikua/danghuangshang:mainfrom
ljluestc:private/fix-132-install-lite-rerunljluestc/danghuangshang:private/fix-132-install-lite-rerunCopy head branch name to clipboard
Draft

fix(install): make install-lite rerunnable after interrupted setup#138
ljluestc wants to merge 1 commit into
wanikua:mainwanikua/danghuangshang:mainfrom
ljluestc:private/fix-132-install-lite-rerunljluestc/danghuangshang:private/fix-132-install-lite-rerunCopy head branch name to clipboard

Conversation

@ljluestc

Copy link
Copy Markdown

问题背景

Issue #132 反馈:install-lite.sh 在首次配置出错并强制退出(如 Ctrl+C)后,再次运行可能表现为“无回显/无反应”。

根因分析

  • 脚本在中断场景下缺少统一清理,read -s 被打断后终端状态可能残留。
  • 缺少对“并发运行 / 陈旧运行状态”的识别与恢复。
  • 非交互终端执行时缺少明确提示,容易被误判为脚本卡死。

变更内容

1) install-lite.sh

  • 增加终端状态保存与恢复逻辑(stty)。
  • 增加统一清理函数,确保退出时恢复终端并清理运行锁。
  • 增加 INT/TERM/EXIT trap,支持中断后可直接重跑。
  • 增加交互终端检查(-t 0 / -t 1),非交互场景快速失败并提示。
  • 增加锁文件机制:$CONFIG_DIR/.install-lite.lock
    • 检测活跃安装进程,拒绝并发执行;
    • 检测陈旧锁并自动清理后继续执行。

2) tests/install-lite.test.js

新增回归测试,覆盖以下关键防护逻辑:

  • 非交互 TTY 防护;
  • 锁文件与 PID 检测;
  • EXIT/INT/TERM 清理与恢复 trap。

验证

  • bash -n install-lite.sh
  • npx --yes jest tests/install-lite.test.js ✅(1 suite, 3 tests passed)
  • 手动中断重试场景验证:首次中断后可正常再次运行 ✅

风险评估

  • 低风险:仅改动安装脚本与回归测试,不影响运行时业务逻辑。
  • 行为变化:非交互环境会更早失败并给出明确提示(避免“无反应”误判)。

影响范围

  • install-lite.sh
  • tests/install-lite.test.js

关联 Issue

Closes #132

Co-Authored-By: Oz oz-agent@warp.dev

@ljluestc
ljluestc marked this pull request as draft April 19, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

简易脚本一第次配置错误强制退出脚本后install-lite.sh,再次运行没有反应

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.