#!/usr/bin/env bash rvm_base_except="selector" source "$rvm_scripts_path/base" source "$rvm_scripts_path/functions/version" __rvm_help_find() { \typeset _full_name \typeset -a _full_paths _full_name="" _full_paths=() _matched="" case "$1" in (*/*) return 1 ;; esac # start with shortest, build path and prepend it to beginning while (( $# > 0 )) do _full_name="${_full_name:-}${1:-}" _full_paths=( "${_full_name}.md" "${_full_paths[@]}" ) _full_name="${_full_name:-}/" shift done # check longest paths first for _full_name in "${_full_paths[@]}" do if [[ -n "${_full_name}" && -s "${rvm_help_path}/${_full_name}" ]] then echo "${rvm_help_path}/${_full_name}" return 0 elif [[ -n "${_full_name}" && -s "${rvm_docs_path}/${_full_name}" ]] then echo "${rvm_docs_path}/${_full_name}" return 0 fi done return 1 } __rvm_help() { \typeset _matched __rvm_print_headline if _matched="$(__rvm_help_find "$@")" then __rvm_pager_or_cat_v "${_matched}" else [[ -z "$1" ]] || rvm_error "Documentation for 'rvm $*' not found" __rvm_pager_or_cat_v "${rvm_path:-$HOME/.rvm}/help/index.txt" fi rvm_log " For additional documentation please visit $(__rvm_version_website) " } __rvm_help "$@"