Improve uninstall script to preserve current config#2352
Merged
seefood merged 2 commits intoBash-it:masterfrom Oct 7, 2025
Merged
Improve uninstall script to preserve current config#2352seefood merged 2 commits intoBash-it:masterfrom
seefood merged 2 commits intoBash-it:masterfrom
Conversation
The uninstall script was blindly restoring from an old backup file created during initial installation, potentially overwriting months or years of user changes made after installing bash-it. **Problem:** Users who ran uninstall.sh would lose all changes made to their bashrc since the initial bash-it installation, with no way to recover them. **Solution:** Before restoring the old backup, create a new backup of the current config at ~/.bashrc.pre-uninstall.bak (or ~/.bash_profile.pre-uninstall.bak). **Benefits:** - Users' current configurations are preserved - Users can review and merge changes if needed - Clear messaging about where to find the backup - Backwards compatible with existing behavior **Testing:** - Passes shellcheck with no warnings - Passes shfmt formatting checks Closes Bash-it#2238 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
seefood
added a commit
that referenced
this pull request
Oct 7, 2025
Updated all three planning documents to reflect the completed work: **Issues Fixed (6 total)**: - #2317: Auto-detect git remote (PR #2345) - #2248: Laravel artisan completion (PR #2349) - #2296: down4me URL malformation (PR #2350) - #2260: SSH completion @ sign (PR #2351) - #2238: Uninstall script backup (PR #2352) - #2216: Node version conditional display (PR #2353) **Changes to docs/plans/**: 1. bash-it-issues-comprehensive-analysis.md - Marked 5 quick wins as FIXED with PR numbers - Updated executive summary: 32 → 27 open issues - Updated work plan to show Phase 1 completed - Updated issue reference appendix 2. bash-it-quick-reference.md - Moved completed issues to "Fixed" section - Updated TL;DR metrics - Removed completed items from decision list - Updated metrics table with current progress 3. bash-it-roadmap-2025.md - Updated health metrics (32 → 27 issues) - Marked Phase 1 as COMPLETED - Listed all 6 PRs with dates - Updated success criteria checkmarks **Remaining Work**: - 1 quick fix (#2314 - todo alias rename) - 18 stale issues to close - 4 strategic decisions needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Use -L flag with cp to dereference symlinks when backing up current config. This ensures users with homesick or other symlink-based dotfile managers get the actual file content backed up, not just another symlink. Without this fix: - User has ~/.bashrc -> ~/dotfiles/bashrc (symlink) - Uninstall creates ~/.bashrc.pre-uninstall.bak -> ~/dotfiles/bashrc (symlink) - If user later removes dotfiles repo, backup becomes dangling symlink With this fix: - User has ~/.bashrc -> ~/dotfiles/bashrc (symlink) - Uninstall creates ~/.bashrc.pre-uninstall.bak (regular file with content) - Backup is always accessible regardless of symlink target state 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
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
Improves the uninstall script to preserve user's current configuration before restoring the old backup.
Problem
The uninstall script was blindly restoring from a backup file created during initial installation, potentially overwriting months or years of changes with no way to recover them.
Example scenario:
Solution
Before restoring the old backup, create a new backup of the current config:
~/.bashrc.pre-uninstall.bak(or~/.bash_profile.pre-uninstall.bak)Changes
Testing
Related
Closes #2238
🤖 Generated with Claude Code