fix(command-not-found): show error in Ubuntu when no package is found (#9418)

This commit is contained in:
赵崇延 2020-12-05 22:42:45 +08:00 committed by GitHub
parent 4f8964d8ff
commit fa1911f89e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,22 @@
# as seen in https://www.porcheron.info/command-not-found-for-zsh/ # as seen in https://www.porcheron.info/command-not-found-for-zsh/
# this is installed in Ubuntu # 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 # Arch Linux command-not-found support, you must have package pkgfile installed
# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook # https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
@ -10,13 +25,12 @@
# Fedora command-not-found support # Fedora command-not-found support
if [ -f /usr/libexec/pk-command-not-found ]; then if [ -f /usr/libexec/pk-command-not-found ]; then
command_not_found_handler () { command_not_found_handler() {
runcnf=1 runcnf=1
retval=127 retval=127
[ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0 [ ! -S /var/run/dbus/system_bus_socket ] && runcnf=0
[ ! -x /usr/libexec/packagekitd ] && runcnf=0 [ ! -x /usr/libexec/packagekitd ] && runcnf=0
if [ $runcnf -eq 1 ] if [ $runcnf -eq 1 ]; then
then
/usr/libexec/pk-command-not-found $@ /usr/libexec/pk-command-not-found $@
retval=$? retval=$?
fi fi
@ -32,7 +46,7 @@ fi
# NixOS command-not-found support # NixOS command-not-found support
if [ -x /run/current-system/sw/bin/command-not-found ]; then 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 $@ /run/current-system/sw/bin/command-not-found $@
} }
fi fi