Improve user ergonomics of brew link --overwrite
help
#16645
Merged
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.
This PR makes the two-step:
link --overwrite --dry-run
followed bylink --overwrite
easier/faster for users. (Easy to leverage shell history to re-run the command without the--dry-run
flag.)Background
When a Keg is unlinked, brew-link gives a very helpful message for how to proceed: add the
--overwrite
flag.For safety, it also recommends running in
--dry-run
mode first to see what would be deleted.So a user's common flow would be:
brew link foo
brew link --overwrite --dry-run foo
brew link --overwrite foo
In this flow, steps 3-5 are likely very common to run back-to-back. Common enough that a user may use their shell history (up arrow) to re-populate their prompt with step 3's command, delete the
--dry-run
flag, and re-run.The
--dry-run
flag needs to be removed from the command, of course. If it had been at the end of the command, it would make the subsequent modification easier.Instead of "up arrow, left-arrow a bunch, then backspace over --dry-run, hopefully not backspacing over the formula name", it would be easier for the user if the dry-run flag were already at the end of the command. Then the user can "up arrow, backspace a few times and hit enter".
What's more, if the last arg were
--dry-run
, a more advanced bash user could even use!:-
to re-run the link command with all-but-the-last-arg.This change is admittedly quite trivial, and unlikely to heavily impact anyone's life. However, I find myself running these commands often enough in quick succession that it would be a nice improvement to make the "re-run for reals" step easier. (for users, like myself, that start by copy/pasting the command from brew's helpful message)
Additional
There is one existing reference to the string
"link --overwrite --dry-run"
in the "Common Issues docs.If it's helpful to have that sample output updated to match, I'd be happy to do so.
Have you written new tests for your changes? Here's an example.This doesn't seem worth a test?Have you successfully runthis errored while installing gems 馃槵brew style
with your changes locally?brew typecheck
with your changes locally?brew tests
with your changes locally?