2021-04-09 12:21:57 -07:00
|
|
|
## Platforms with a built-in command-not-found handler init file
|
|
|
|
|
|
|
|
for file (
|
|
|
|
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found
|
|
|
|
/usr/share/doc/pkgfile/command-not-found.zsh
|
|
|
|
# macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found
|
|
|
|
/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
|
|
|
|
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh
|
|
|
|
); do
|
|
|
|
if [[ -r "$file" ]]; then
|
|
|
|
source "$file"
|
|
|
|
unset file
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
unset file
|
2010-10-25 14:02:16 -07:00
|
|
|
|
2013-04-13 22:07:17 -07:00
|
|
|
|
2021-04-09 12:21:57 -07:00
|
|
|
## Platforms with manual command_not_found_handler() setup
|
2015-01-10 07:38:49 -07:00
|
|
|
|
2021-04-09 12:21:57 -07:00
|
|
|
# Debian and derivatives: https://launchpad.net/ubuntu/+source/command-not-found
|
|
|
|
if [[ -x /usr/lib/command-not-found || -x /usr/share/command-not-found/command-not-found ]]; then
|
|
|
|
command_not_found_handler() {
|
|
|
|
if [[ -x /usr/lib/command-not-found ]]; then
|
|
|
|
/usr/lib/command-not-found -- "$1"
|
|
|
|
return $?
|
|
|
|
elif [[ -x /usr/share/command-not-found/command-not-found ]]; then
|
|
|
|
/usr/share/command-not-found/command-not-found -- "$1"
|
|
|
|
return $?
|
|
|
|
else
|
|
|
|
printf "zsh: command not found: %s\n" "$1" >&2
|
|
|
|
return 127
|
|
|
|
fi
|
|
|
|
}
|
2015-01-10 07:38:49 -07:00
|
|
|
fi
|
2015-10-22 09:15:14 -07:00
|
|
|
|
2021-04-09 12:21:57 -07:00
|
|
|
# Fedora: https://fedoraproject.org/wiki/Features/PackageKitCommandNotFound
|
|
|
|
if [[ -x /usr/libexec/pk-command-not-found ]]; then
|
|
|
|
command_not_found_handler() {
|
|
|
|
if [[ -S /var/run/dbus/system_bus_socket && -x /usr/libexec/packagekitd ]]; then
|
2021-05-03 07:49:41 -07:00
|
|
|
/usr/libexec/pk-command-not-found "$@"
|
2021-04-09 12:21:57 -07:00
|
|
|
return $?
|
|
|
|
fi
|
|
|
|
|
|
|
|
printf "zsh: command not found: %s\n" "$1" >&2
|
|
|
|
return 127
|
|
|
|
}
|
2015-10-22 09:15:14 -07:00
|
|
|
fi
|
2019-03-25 14:19:46 -07:00
|
|
|
|
2021-04-09 12:21:57 -07:00
|
|
|
# NixOS: https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found
|
|
|
|
if [[ -x /run/current-system/sw/bin/command-not-found ]]; then
|
|
|
|
command_not_found_handler() {
|
2021-11-03 05:17:23 -07:00
|
|
|
/run/current-system/sw/bin/command-not-found "$@"
|
2021-04-09 12:21:57 -07:00
|
|
|
}
|
2019-03-25 14:19:46 -07:00
|
|
|
fi
|
2021-02-14 06:44:59 -07:00
|
|
|
|
|
|
|
# Termux: https://github.com/termux/command-not-found
|
|
|
|
if [[ -x /data/data/com.termux/files/usr/libexec/termux/command-not-found ]]; then
|
|
|
|
command_not_found_handler() {
|
2021-11-10 07:03:38 -07:00
|
|
|
/data/data/com.termux/files/usr/libexec/termux/command-not-found "$1"
|
2021-02-14 06:44:59 -07:00
|
|
|
}
|
|
|
|
fi
|
2021-12-17 17:02:06 -07:00
|
|
|
|
|
|
|
# SUSE and derivates: https://www.unix.com/man-page/suse/1/command-not-found/
|
|
|
|
if [[ -x /usr/bin/command-not-found ]]; then
|
|
|
|
command_not_found_handler() {
|
|
|
|
/usr/bin/command-not-found "$1"
|
|
|
|
}
|
|
|
|
fi
|