feat: add dedicated uninstall.sh script
Summary
- Add standalone
uninstall.shscript for easier Ralph removal - Include safety confirmation prompt before removal (skip with
-y/--yes) - Display removal plan showing exactly what will be removed
- Match styling with
install.sh(colors, logging format)
Changes
- New
uninstall.shscript (159 lines) that:- Verifies Ralph is installed before attempting removal
- Shows what will be removed (commands and
~/.ralphdirectory) - Prompts for confirmation (can be bypassed with
-yflag) - Preserves project directories created with
ralph-setup - Provides
-h/--helpoption for usage information
Test plan
- [ ] Run
./uninstall.sh --helpto verify help output - [ ] Run
./uninstall.shand cancel to verify confirmation works - [ ] Run
./uninstall.sh -yafter installing to verify clean removal - [ ] Verify project directories are preserved after uninstall
🤖 Generated with Claude Code
Summary by CodeRabbit
-
New Features
- Adds a full uninstallation tool for Ralph that previews removable items, offers confirmation (with an optional auto-confirm flag), and cleans up installed components and the app home directory.
- Includes help text, colored timestamped status messages, and clear progress reporting.
-
Bug Fixes / UX
- Gracefully handles cases where no installation is found and exits with informative messages.
✏️ Tip: You can customize this high-level summary in your review settings.
Walkthrough
Adds a new Bash uninstallation script uninstall.sh that detects an existing Ralph installation, displays a removal plan, optionally prompts for confirmation (-y/--yes), removes installed command files and the Ralph home directory, and prints colored, timestamped status messages; project directories created by setup are not removed.
Changes
| Cohort / File(s) | Summary |
|---|---|
Uninstall Script uninstall.sh |
New standalone Bash script implementing: log() (colorized, timestamped logging), check_installation() (detects INSTALL_DIR/RALPH_HOME), show_removal_plan() (lists removable items), confirm_uninstall() (-y/--yes, -h/--help), remove_commands() (delete commands from INSTALL_DIR), remove_ralph_home() (remove RALPH_HOME), and main() (orchestrates flow). Explicitly does not remove project directories created by setup. |
Sequence Diagram(s)
(omitted — change is a single-file uninstall script without multi-component sequential interactions)
Estimated code review effort
🎯 2 (Simple) | ⏱️ ~12 minutes
Poem
🐰 I hop through scripts at break of dawn,
I list the files and wipe the lawn,
With timestamped hues and one kind nudge,
Commands depart; home gets a judge,
Projects kept safe — I skip the grudge.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | The title accurately summarizes the primary change: adding a dedicated uninstall.sh script to the Ralph project. |
| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. |
✏️ Tip: You can configure your own custom pre-merge checks in the settings.
✨ Finishing touches
- [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests
- [ ] Post copyable unit tests in a comment
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.