mirror of
https://github.com/jorgebucaran/fisher
synced 2024-11-09 07:10:27 +00:00
81045ae342
Split help command functionality into individual functions for cosistent with the way other commands are structured, and improve tab completion times by skipping the overhead of calling fisher_help directly.
90 lines
2.2 KiB
Fish
90 lines
2.2 KiB
Fish
function fisher_help -d "Show Help"
|
|
if not set -q argv[1]
|
|
man fisher
|
|
return
|
|
end
|
|
|
|
set -l option
|
|
set -l value
|
|
|
|
getopts $argv | while read -l 1 2
|
|
switch "$1"
|
|
case _
|
|
set option man
|
|
set value $2
|
|
|
|
case a all
|
|
set option guides commands
|
|
set value $2
|
|
|
|
case g guides
|
|
set option $option guides
|
|
set value $2
|
|
|
|
case commands
|
|
set option $option commands
|
|
set value $2
|
|
|
|
case usage
|
|
set option usage
|
|
set value $value $2
|
|
|
|
case help
|
|
set option help
|
|
|
|
case h
|
|
printf "Usage: fisher help [<keyword>] [--all] [--guides] [--help]\n\n"
|
|
|
|
printf " -a --all List available documentation\n"
|
|
printf " -g --guides List available guides\n"
|
|
printf " --usage[=<cmd>] Display command usage\n"
|
|
printf " -h --help Show usage help\n"
|
|
return
|
|
|
|
case \*
|
|
printf "fisher: '%s' is not a valid option.\n" $1 > /dev/stderr
|
|
fisher_help -h > /dev/stderr
|
|
return 1
|
|
end
|
|
end
|
|
|
|
if not set -q option[1]
|
|
set option commands
|
|
end
|
|
|
|
switch "$option"
|
|
case help
|
|
man fisher-help
|
|
|
|
case man
|
|
set -l value (printf "%s\n" $value | awk '{ print tolower($0) }')
|
|
|
|
switch "$value"
|
|
case me fisher fisherman
|
|
man fisher
|
|
|
|
case \*
|
|
man fisher-$value
|
|
end
|
|
|
|
case usage
|
|
__fisher_help_usage $value
|
|
|
|
case \*
|
|
if test "$value" != bare
|
|
fisher --help=$option
|
|
return
|
|
end
|
|
|
|
begin
|
|
if contains -- commands $option
|
|
__fisher_help_commands
|
|
end
|
|
|
|
if contains -- guides $option
|
|
__fisher_help_guides
|
|
end
|
|
end | sed 's/^/ /;s/;/'\t'/' | column -ts\t
|
|
end
|
|
end
|