Add new `brew update-reset` command to provide a helpful troubleshooting
fallback to fetch and reset all repositories. This could have lived in
`brew update` but it makes sense to avoid the complexity of sharing
logic between these scripts and keeping this one simpler.
Even if they're empty we want to keep these top-level directories around
as the installer has nicely created them with the correct permissions
and this avoids potentially having to use `sudo` to recreate them.
* installing HEAD keg_only should be possible only if:
1.
- Old version installed differs from new one and optlinked
- `--force` flag is passed
- HEAD is seriously outdated or outdated with `--fetch-HEAD`
or 2.
- Old version installed differs from new one and not optlinked
or 3.
- This formula is not installed
* installing keg_only should be possible only if:
1.
- Old version installed differs from new one and optlinked
- `--force` flag is passed
or 2.
- Old version installed differs from new one and not optlinked
or 3.
- This formula is not installed
* installing HEAD should be possible only if:
1.
- Old HEAD is seriously outdated or outdated with `--fetch-HEAD`
or 2.
- HEAD is not installed
* installing stable or devel should be possible only if:
- Old version installed differs from new one
- Don't output the analytics message and mark it as read if
`HOMEBREW_NO_ANALYTICS_THIS_RUN` is set. This mostly simplifies the
installer code where we can display the message ourselves there rather
than having `brew update` print it out sometimes and not others (i.e.
when there's no system Git installed).
- Use the shell's audible bell to nudge people to actually read this
message (and give them less excuse to complain when they don't).
- Add an extra newline and bold all the analytics messaging so it's
more visible in the output.
Works around Rubycop not liking method names that start with `is_`
by changing convention from singular to plural.
I think it's better that way anyway.
Suggested in #1084.
Made the existing warning output entirely to STDERR, because
previously the first line went to STDERR and subsequent ones went
to STDOUT.
If `--with-foo` is provided to a formula through a tab or through
another formula depending on it and this option does not exist it
should be filtered. If it is not (the prior behaviour) then this can
prevent bottles being used unnecessarily.
Fixes#1399.
Improve the GitHub API scope and token related messaging by
autopopulating the scopes we need on the new scopes page and, in the
case of a lacking a scope we need, output what scope was required.
Also, DRY up the personal access token code.
With the way uninstall is set up at the moment, it's pretty difficult to
add functionality to both the --force and normal variants.
Extracting the racks and kegs to be uninstalled before uninstalling them
should make this easier.