Improve user ergonomics of brew link --overwrite help

When a Keg is unlinked, brew-link gives a helpful message for how to proceed: adding 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:

1. run `brew link foo`
2. get error message with guidance
3. run `brew link --overwrite --dry-run foo`
4. inspect
5. run `brew link --overwrite foo`

In this flow, steps 3-5 are likely very common. Common enough that a user may use their shell history to re-populate their prompt with step 3's command, delete the `--dry-run` flag, and re-run. (The end goal, of course, is to link `foo`.)

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 commit is contained in:
Jason Karns 2024-02-12 09:29:21 -05:00 committed by GitHub
parent 352f57d753
commit 79a8279b2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -60,7 +60,7 @@ class Keg
brew link --overwrite #{keg.name}
To list all files that would be deleted:
brew link --overwrite --dry-run #{keg.name}
brew link --overwrite #{keg.name} --dry-run
EOS
s.join("\n")
end