mirror of
https://github.com/dcarrillo/prezto.git
synced 2025-10-14 11:09:08 +00:00
command-not-found module: add support for homebrew >= 4.6.12
As of Homebrew 4.6.12, command-not-found is built into Homebrew core and the tap is deprecated, causing Homebrew to print deprecation warnings on init until the tap is uninstalled, after which prezto can't find the helper in its new location. * Added logic to look first in the new location for handler.sh in the core Homebrew repository, *then* check in Taps. * Added an OSTYPE check for MacOS to prevent this from accidentally engaging on Linux systems using Homebrew as a third party package manager
This commit is contained in:
committed by
Indrajit Raychaudhuri
parent
5666927098
commit
c945922b22
@@ -6,18 +6,26 @@ install command.
|
|||||||
|
|
||||||
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
|
Debian and Arch Linux based distributions use the [`command-not-found`][1] tool.
|
||||||
|
|
||||||
macOS uses Homebrew's [`command-not-found` clone][2]. Note that unless you have
|
macOS uses Homebrew's [`command-not-found` clone][2]. This module will
|
||||||
a recent version of Homebrew installed, you might also need to tap the
|
automatically load it without needing to manually source `handler.sh` from
|
||||||
`command-not-found` Homebrew repository [following the instructions][3].
|
`.zshrc` per the [instructions][3].
|
||||||
|
|
||||||
|
Note: Prior to [Homebrew 4.6.12][4], you may have also needed to tap the
|
||||||
|
[`command-not-found` Homebrew repository][5]. This will still work as a
|
||||||
|
fallback when the `command-not-found` handler can't be detected in Homebrew
|
||||||
|
core, but the repository has been deprecated and may print a warning. After
|
||||||
|
upgrading Homebrew, it can be untapped.
|
||||||
|
|
||||||
## Authors
|
## Authors
|
||||||
|
|
||||||
_The authors of this module should be contacted via the [issue tracker][4]._
|
_The authors of this module should be contacted via the [issue tracker][6]._
|
||||||
|
|
||||||
- [Joseph Booker](https://github.com/sargas)
|
- [Joseph Booker](https://github.com/sargas)
|
||||||
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
|
- [Indrajit Raychaudhuri](https://github.com/indrajitr)
|
||||||
|
|
||||||
[1]: https://code.launchpad.net/command-not-found
|
[1]: https://code.launchpad.net/command-not-found
|
||||||
[2]: https://github.com/Homebrew/homebrew-command-not-found
|
[2]: https://docs.brew.sh/Command-Not-Found
|
||||||
[3]: https://github.com/Homebrew/homebrew-command-not-found#install
|
[3]: https://docs.brew.sh/Command-Not-Found#install
|
||||||
[4]: https://github.com/sorin-ionescu/prezto/issues
|
[4]: https://github.com/Homebrew/brew/releases/tag/4.6.12
|
||||||
|
[5]: https://github.com/Homebrew/homebrew-command-not-found
|
||||||
|
[6]: https://github.com/sorin-ionescu/prezto/issues
|
||||||
|
@@ -12,11 +12,22 @@ if [[ -s /etc/zsh_command_not_found ]]; then
|
|||||||
# Load command-not-found on Arch Linux-based distributions.
|
# Load command-not-found on Arch Linux-based distributions.
|
||||||
elif [[ -s /usr/share/doc/pkgfile/command-not-found.zsh ]]; then
|
elif [[ -s /usr/share/doc/pkgfile/command-not-found.zsh ]]; then
|
||||||
source /usr/share/doc/pkgfile/command-not-found.zsh
|
source /usr/share/doc/pkgfile/command-not-found.zsh
|
||||||
# Load command-not-found on macOS when Homebrew tap is configured.
|
# Load command-not-found on macOS when Homebrew is present. Check explicitly
|
||||||
elif (( $+commands[brew] )) \
|
# for MacOS, since homebrew can be installed on Linux as a supplementary PM
|
||||||
&& [[ -s ${hb_cnf_handler::="${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h}/Library/Taps/homebrew/homebrew-command-not-found/handler.sh"} ]]; then
|
elif [[ "$OSTYPE" =~ ^darwin ]] && (( $+commands[brew] )); then
|
||||||
source "$hb_cnf_handler"
|
homebrew_repo=${HOMEBREW_REPOSITORY:-$commands[brew]:A:h:h/Library}
|
||||||
unset hb_cnf_handler
|
# Look for handler in Homebrew core (as of >=4.6.12), then in Taps (< 4.6.12)
|
||||||
|
for hb_cnf_handler in "$homebrew_repo"/{Homebrew/command-not-found/handler.sh,Taps/homebrew/homebrew-command-not-found/handler.sh}; do
|
||||||
|
if [ -f "$hb_cnf_handler" ]; then
|
||||||
|
source "$hb_cnf_handler"
|
||||||
|
unset hb_cnf_handler homebrew_repo
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ -n "$hb_cnf_handler" ]; then
|
||||||
|
unset hb_cnf_handler homebrew_repo
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
# Return if requirements are not found.
|
# Return if requirements are not found.
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
Reference in New Issue
Block a user