diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/cli.zsh | 28 | 
1 files changed, 27 insertions, 1 deletions
| diff --git a/lib/cli.zsh b/lib/cli.zsh index 6fcffdf87..86a0ed3c4 100644 --- a/lib/cli.zsh +++ b/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)) | 
