From 948b9d2ab86fe21b684b4a5aec91e7ad03464bb1 Mon Sep 17 00:00:00 2001 From: Mahmoud Al-Qudsi Date: Wed, 27 Jun 2018 14:11:57 -0500 Subject: [PATCH] Add __fish_whatis helper function/wrapper for `whatis` 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. --- share/functions/__fish_whatis.fish | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 share/functions/__fish_whatis.fish diff --git a/share/functions/__fish_whatis.fish b/share/functions/__fish_whatis.fish new file mode 100644 index 000000000..57d8f530d --- /dev/null +++ b/share/functions/__fish_whatis.fish @@ -0,0 +1,21 @@ +# 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 +