mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-27 11:43:37 +08:00
948b9d2ab8
Executes `whatis` safely, returns at most one line, and strips the name of the command from the start of line, returning a value fit for use as the description parameter for a completion argument value.
22 lines
441 B
Fish
22 lines
441 B
Fish
# uses `whatis` if available to describe a command
|
|
|
|
function __fish_whatis
|
|
set -l cmd $argv[1]
|
|
set -l fallback
|
|
if set -q argv[2]
|
|
set fallback $argv[2]
|
|
end
|
|
|
|
set -l description (whatis $cmd 2>/dev/null | string replace -r '.*? - ' '')[1]
|
|
if not string match -qr -- "$description" "."
|
|
printf '%s\n' $description
|
|
return 0
|
|
else if not string match -q -- "$fallback" ""
|
|
printf '%s\n' $fallback
|
|
return 0
|
|
else
|
|
return 1
|
|
end
|
|
end
|
|
|