mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 09:39:52 +08:00
__fish_print_packages: Better parse apt-cache's weird format
Fixes #7521.
This commit is contained in:
parent
b9b84e63bf
commit
672fdde1f0
|
@ -23,11 +23,17 @@ function __fish_print_packages
|
|||
# (It is safe to use `sed -r` here as we are guaranteed to be on a GNU platform
|
||||
# if apt-cache was found. Using unicode reserved range in `fish/tr` and the
|
||||
# little-endian bytecode equivalent in `sed`. Supports localization.)
|
||||
apt-cache --no-generate show '.*'(commandline -ct)'.*' 2>/dev/null | sed -r '/^(Package|Description-?[a-z]{0,2}):/!d;s/Package: (.*)/\1\t/g;s/Description-?[^:]*: (.*)/\1\xee\x80\x80\x0a/g' | tr -d \n | tr -s \uE000 \n | uniq
|
||||
#
|
||||
# Note: This can include "Description:" fields which we need to include,
|
||||
# "Description-en_GB" (or another locale code) fields which we need to include
|
||||
# as well as "Description-md5" fields which we absolutely do *not* want to include
|
||||
# The regex doesn't allow numbers, so unless someone makes a hash algorithm without a number in the name,
|
||||
# we're safe. (yes, this should absolutely have a better format).
|
||||
apt-cache --no-generate show '.*'(commandline -ct)'.*' 2>/dev/null | sed -r '/^(Package|Description-?[a-zA-Z_]*):/!d;s/Package: (.*)/\1\t/g;s/Description-?[^:]*: (.*)/\1\xee\x80\x80\x0a/g' | tr -d \n | tr -s \uE000 \n | uniq
|
||||
return
|
||||
else
|
||||
set -l packages (dpkg --get-selections | string replace -fr '(\S+)\s+install' "\$1" | string match -e (commandline -ct))
|
||||
apt-cache --no-generate show $packages 2>/dev/null | sed -r '/^(Package|Description-?[a-z]{0,2}):/!d;s/Package: (.*)/\1\t/g;s/Description-?[^:]*: (.*)/\1\xee\x80\x80\x0a/g' | tr -d \n | tr -s \uE000 \n | uniq
|
||||
apt-cache --no-generate show $packages 2>/dev/null | sed -r '/^(Package|Description-?[a-zA-Z_]*):/!d;s/Package: (.*)/\1\t/g;s/Description-?[^:]*: (.*)/\1\xee\x80\x80\x0a/g' | tr -d \n | tr -s \uE000 \n | uniq
|
||||
|
||||
return
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user