You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.7 KiB
76 lines
2.7 KiB
## Platforms with a built-in command-not-found handler init file |
|
|
|
for file ( |
|
# Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/title/Zsh#pkgfile_"command_not_found"_handler |
|
/usr/share/doc/pkgfile/command-not-found.zsh |
|
# Void Linux: https://codeberg.org/classabbyamp/xbps-command-not-found |
|
/usr/share/zsh/plugins/xbps-command-not-found/xbps-command-not-found.zsh |
|
# Homebrew: https://github.com/Homebrew/brew/blob/main/docs/Command-Not-Found.md |
|
/opt/homebrew/Library/Homebrew/command-not-found/handler.sh |
|
/usr/local/Homebrew/Library/Homebrew/command-not-found/handler.sh |
|
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/command-not-found/handler.sh |
|
# Old homebrew implementation |
|
/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh |
|
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh |
|
/home/linuxbrew/.linuxbrew/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 |
|
|
|
|
|
## Platforms with manual command_not_found_handler() setup |
|
|
|
# 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 |
|
} |
|
fi |
|
|
|
# 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 |
|
/usr/libexec/pk-command-not-found "$@" |
|
return $? |
|
fi |
|
|
|
printf "zsh: command not found: %s\n" "$1" >&2 |
|
return 127 |
|
} |
|
fi |
|
|
|
# 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() { |
|
/run/current-system/sw/bin/command-not-found "$@" |
|
} |
|
fi |
|
|
|
# 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() { |
|
/data/data/com.termux/files/usr/libexec/termux/command-not-found "$1" |
|
} |
|
fi |
|
|
|
# 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
|
|
|