Harden Linux installer: stop bin-dir wipe, fix unparseable script, ARM, portability - #11
Merged
Merged
Conversation
- Never rm -rf the shared ~/.local/bin on rollback; only remove the specific files clawde installed (fixes data-loss on failed install, #3) - Force LF line endings for shell scripts (.gitattributes text eol=lf) and renormalize install.sh/clawde.sh: they were committed CRLF, which makes Linux bash reject them when served via `curl | bash`. Repair the broken \-continuations, replace mojibake progress-bar glyphs with ASCII, and add a CI lint job (bash -n + shellcheck) guarding the parse class (#9) - Select the aarch64 CCProxy tarball on ARM Linux instead of x86_64, with a clear quoted pipx fallback when no ARM build exists (#7) - Make opencode.json the single source of truth for the ccproxy-claude provider: fix the jq baseURL that wrote a literal $port, add apiKey, and drop the divergent env-var exports from the CLI (#5) - macOS/BSD portability + robustness: POSIX config regex (first =, tab-safe), leftmost python-version parse (no longer accepts py2), atomic self-update rename with partial-download cleanup, and uninstall via POSIX awk that removes only clawde's own marker block and reports success truthfully (#10) Refs #3, #5, #7, #9, #10 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Hardens the Linux/WSL/macOS installer and management CLI. Most importantly, it removes a data-loss hazard and makes the installer script actually runnable on Linux again.
What changed
~/.local/bindirectory (every tool a user keeps there), not just clawde's own files. Rollback now removes only the specific files clawde installed. (Closes Failed Linux install can delete unrelated binaries in ~/.local/bin #3)curl … | bashfedbasha script it rejected outright — the installer was fully broken on its own target platform. Line endings are now enforced as LF for shell scripts, the corrupted progress-bar characters are fixed, and a small CI job (bash -n+ shellcheck) guards against the whole class recurring. (Closes Linux installer prints mojibake instead of a progress bar #9)Reviewer note
The line-ending normalization makes the diff read as a whole-file rewrite for the two shell scripts. Review with
git diff --ignore-cr-at-eol(or-w) to see the real logic changes.Closes #3, #7, #9
Contributes to #5, #10
🤖 Generated with Claude Code