summaryrefslogtreecommitdiff
path: root/plugins/command-not-found/command-not-found.plugin.zsh
diff options
context:
space:
mode:
author赵崇延 <47052088+ZhaoChongyan@users.noreply.github.com>2020-12-05 22:42:45 +0800
committerGitHub <noreply@github.com>2020-12-05 15:42:45 +0100
commitfa1911f89eab6d8d753e302546c6ecd5d0db9e08 (patch)
treed24c5efe57b15bbc2c5079e97ddddcd1c38b443a /plugins/command-not-found/command-not-found.plugin.zsh
parent4f8964d8fff25b67e79029d570d171c8cdf3f833 (diff)
downloadzsh-fa1911f89eab6d8d753e302546c6ecd5d0db9e08.tar.gz
zsh-fa1911f89eab6d8d753e302546c6ecd5d0db9e08.tar.bz2
zsh-fa1911f89eab6d8d753e302546c6ecd5d0db9e08.zip
fix(command-not-found): show error in Ubuntu when no package is found (#9418)
Diffstat (limited to 'plugins/command-not-found/command-not-found.plugin.zsh')
-rw-r--r--plugins/command-not-found/command-not-found.plugin.zsh24
1 files changed, 19 insertions, 5 deletions
diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh
index 81d76e638..aea1e1b4c 100644
--- a/plugins/command-not-found/command-not-found.plugin.zsh
+++ b/plugins/command-not-found/command-not-found.plugin.zsh
@@ -2,7 +2,22 @@
# as seen in https://www.porcheron.info/command-not-found-for-zsh/
# this is installed in Ubuntu
-[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
+if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
+ function command_not_found_handler {
+ # check because c-n-f could've been removed in the meantime
+ 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
+ return 0
+ }
+fi
# Arch Linux command-not-found support, you must have package pkgfile installed
# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
@@ -10,13 +25,12 @@
# Fedora command-not-found support
if [ -f /usr/libexec/pk-command-not-found ]; then
- command_not_found_handler () {
+ command_not_found_handler() {
runcnf=1
retval=127
[ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0
[ ! -x /usr/libexec/packagekitd ] && runcnf=0
- if [ $runcnf -eq 1 ]
- then
+ if [ $runcnf -eq 1 ]; then
/usr/libexec/pk-command-not-found $@
retval=$?
fi
@@ -32,7 +46,7 @@ fi
# NixOS command-not-found support
if [ -x /run/current-system/sw/bin/command-not-found ]; then
- command_not_found_handler () {
+ command_not_found_handler() {
/run/current-system/sw/bin/command-not-found $@
}
fi