feat(CLI): add `plugin info` subcommand (#9452)
Co-authored-by: Fernando Crespo <fxcrespo@iMac-44054.local> Co-authored-by: Marc Cornellà <marc.cornella@live.com>
This commit is contained in:
parent
0e833b622b
commit
9e5f280f87
28
lib/cli.zsh
28
lib/cli.zsh
|
@ -37,7 +37,7 @@ function _omz {
|
|||
changelog) local -a refs
|
||||
refs=("${(@f)$(command git for-each-ref --format="%(refname:short):%(subject)" refs/heads refs/tags)}")
|
||||
_describe 'command' refs ;;
|
||||
plugin) subcmds=('list:List plugins')
|
||||
plugin) subcmds=('info:Get plugin information' 'list:List plugins')
|
||||
_describe 'command' subcmds ;;
|
||||
pr) subcmds=('test:Test a Pull Request' 'clean:Delete all Pull Request branches')
|
||||
_describe 'command' subcmds ;;
|
||||
|
@ -46,6 +46,8 @@ function _omz {
|
|||
esac
|
||||
elif (( CURRENT == 4 )); then
|
||||
case "$words[2]::$words[3]" in
|
||||
plugin::info) compadd "$ZSH"/plugins/*/README.md(.N:h:t) \
|
||||
"$ZSH_CUSTOM"/plugins/*/README.md(.N:h:t) ;;
|
||||
theme::use) compadd "$ZSH"/themes/*.zsh-theme(.N:t:r) \
|
||||
"$ZSH_CUSTOM"/**/*.zsh-theme(.N:r:gs:"$ZSH_CUSTOM"/themes/:::gs:"$ZSH_CUSTOM"/:::) ;;
|
||||
esac
|
||||
|
@ -143,6 +145,7 @@ Usage: omz plugin <command> [options]
|
|||
|
||||
Available commands:
|
||||
|
||||
info <plugin> Get information of a plugin
|
||||
list List all available Oh My Zsh plugins
|
||||
|
||||
EOF
|
||||
|
@ -155,6 +158,29 @@ EOF
|
|||
_omz::plugin::$command "$@"
|
||||
}
|
||||
|
||||
function _omz::plugin::info {
|
||||
if [[ -z "$1" ]]; then
|
||||
echo >&2 "Usage: omz plugin info <plugin>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local readme
|
||||
for readme in "$ZSH_CUSTOM/plugins/$1/README.md" "$ZSH/plugins/$1/README.md"; do
|
||||
if [[ -f "$readme" ]]; then
|
||||
(( ${+commands[less]} )) && less "$readme" || cat "$readme"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ -d "$ZSH_CUSTOM/plugins/$1" || -d "$ZSH/plugins/$1" ]]; then
|
||||
_omz::log error "the '$1' plugin doesn't have a README file"
|
||||
else
|
||||
_omz::log error "'$1' plugin not found"
|
||||
fi
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
function _omz::plugin::list {
|
||||
local -a custom_plugins builtin_plugins
|
||||
custom_plugins=("$ZSH_CUSTOM"/plugins/*(-/N:t))
|
||||
|
|
Loading…
Reference in New Issue