123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- #!/usr/bin/env bash
- if
- [[ "$rvm_trace_flag" -eq 2 ]]
- then
- set -x
- export rvm_trace_flag
- fi
- source "$rvm_scripts_path/base"
- source "$rvm_scripts_path/functions/autolibs"
- source "$rvm_scripts_path/functions/detect/system"
- source "$rvm_scripts_path/functions/version"
- source "$rvm_scripts_path/functions/version-installed-when"
- version_for()
- {
- \typeset binary
- binary=${1:-""}
- if
- builtin command -v "$binary" >/dev/null
- then
- $binary --version | \command \head -n1
- else
- echo "not installed"
- fi
- }
- info_system()
- {
- source "$rvm_scripts_path/functions/detect/xcode"
- rvm_info="
- system:
- uname: \"${_system_info}\"
- name: \"${_system_name}\"
- version: \"${_system_version}\"
- architecture: \"${_system_arch}\"
- bash: \"$(command -v bash) => $(version_for bash)\"
- zsh: \"$(command -v zsh) => $(version_for zsh)\"
- remote_path: \"$(__rvm_system_path - 99 )\""
- [[ "$_system_name" == "OSX" ]] && rvm_info="${rvm_info}
- xcode: \"$(__rvm_detect_xcode_version)\""
- rvm_info="${rvm_info}\n"
- }
- info_rvm()
- {
- __rvm_autolibs_get
- __rvm_autolibs_translate_description
- rvm_info="
- rvm:
- version: \"${rvm_version}\"
- updated: \"$(__rvm_version_installed_when)\"
- path: \"$rvm_path\"
- autolibs: \"[${rvm_autolibs_flag}] ${rvm_autolibs_flag_description}\"
- "
- }
- info_ruby()
- {
- [[ "$(__rvm_env_string)" == "system" ]] && return
- ruby=$(builtin command -v ruby)
- if
- [[ $? -eq 0 ]] && [[ -x "$ruby" ]]
- then
- full_version="$($ruby -v)"
- fi
- rvm_info="
- ruby:
- interpreter: \"$(printf "%b" "${full_version}" | __rvm_awk '{print $1}')\"
- version: \"$(printf "%b" "${full_version}" | __rvm_awk '{print $2}')\"
- date: \"$(printf "%b" "${full_version}" | __rvm_sed 's/^.*(\([0-9]\{4\}\(-[0-9][0-9]\)\{2\}\).*$/\1/')\"
- platform: \"$(printf "%b" "${full_version}" | __rvm_sed 's/^.*\[//' | __rvm_sed 's/\].*$//')\"
- patchlevel: \"$(printf "%b" "${full_version}" | __rvm_sed 's/^.*(//' | __rvm_sed 's/).*$//')\"
- full_version: \"${full_version}\"
- "
- }
- info_homes()
- {
- rvm_info="
- homes:
- gem: \"${GEM_HOME:-"not set"}\"
- ruby: \"${MY_RUBY_HOME:-"not set"}\"
- "
- }
- info_binaries()
- {
- rvm_info="
- binaries:
- ruby: \"$(command -v ruby)\"
- irb: \"$(command -v irb)\"
- gem: \"$(command -v gem)\"
- rake: \"$(command -v rake)\"
- "
- }
- info_environment()
- {
- rvm_info="
- environment:
- PATH: \"${PATH:-""}\"
- GEM_HOME: \"${GEM_HOME:-""}\"
- GEM_PATH: \"${GEM_PATH:-""}\"
- MY_RUBY_HOME: \"${MY_RUBY_HOME:-""}\"
- IRBRC: \"${IRBRC:-""}\"
- RUBYOPT: \"${RUBYOPT:-""}\"
- gemset: \"$(__rvm_current_gemset)\"\n
- "
- if [[ -n "${MAGLEV_HOME:-""}" ]]
- then rvm_info="$rvm_info\n MAGLEV_HOME: \"$MAGLEV_HOME\""
- fi
- rvm_info="$rvm_info\n"
- }
- info_debug()
- {
- rvm_info="
- $(__rvm_print_headline)
- $("$rvm_scripts_path/info" "$rvm_ruby_string" "" )
- PATH:\n$(printf "%b" "$PATH" | __rvm_awk -F":" '{print $1":"$2":"$3":"$4":"$5}' )
- uname -a: ${_system_info}
- permissions: $(__rvm_ls -la "$rvm_path" "$rvm_rubies_path")
- "
- if [[ "Darwin" == "${_system_type}" ]]
- then
- rvm_info="$rvm_info
- sw_vers: $(sw_vers | \command \tr "\n" ',')
- ARCHFLAGS: ${ARCHFLAGS:-""}
- LDFLAGS: ${LDFLAGS:-""}
- CFLAGS: ${CFLAGS:-""}
- "
- fi
- for file_name in "$HOME/.bashrc" "$HOME/.bash_profile" "$HOME/.zshenv"
- do
- if
- [[ -s "$file_name" ]]
- then
- rvm_info="$rvm_info\n$file_name:\n$(__rvm_grep 'rvm' "$file_name" 2>/dev/null || true)"
- fi
- done
- debug_files=(
- "$rvm_path/config/alias" "$rvm_path/config/system" "$rvm_path/config/db"
- "/etc/rvmrc" "$HOME/.rvmrc" "/etc/gemrc" "$HOME/.gemrc"
- )
- for file_name in "${debug_files[@]}"
- do
- if
- [[ -f "$file_name" && -s "$file_name" ]]
- then
- rvm_info="$rvm_info\n$file_name \(filtered\):\n$(__rvm_awk '!/assword|_key/{print}' "$file_name" )\n"
- fi
- done
- rvm_info="$rvm_info\ngem sources:\n$(gem sources | __rvm_awk '/gems/{print}')\n\n"
- }
- info_sections()
- {
- for section in $(printf "%b" "${sections//,/ }")
- do
- rvm_info=""
- "info_${section}"
- printf "%b" "$rvm_info"
- done
- }
- rvm_ruby_gem_home="${rvm_ruby_gem_home:-${GEM_HOME:-""}}"
- if
- [[ ! -d "$rvm_ruby_gem_home" ]] &&
- builtin command -v gem > /dev/null 2>&1
- then
- rvm_ruby_gem_home="$(gem env home)"
- fi
- rvm_info=""
- args=($*)
- ruby_strings="${args[$__array_start]// /}"
- args[$__array_start]=""
- args=(${args[@]})
- sections="${args// /}"
- all_sections="system rvm ruby homes binaries environment"
- # TODO: Figure out what was the thought here and remove external match script
- # dependency
- if
- __rvm_string_match "$all_sections debug" "*${ruby_strings%%,*}*"
- then
- sections="$ruby_strings"
- ruby_strings=""
- fi
- if
- [[ -z "${sections// /}" ]]
- then
- sections="$all_sections"
- fi
- if
- [[ -z "$ruby_strings" ]]
- then
- printf "%b" "\n$(__rvm_env_string):\n"
- info_sections
- else
- for ruby_string in ${ruby_strings//,/ }
- do
- __rvm_become "$ruby_string"
- printf "%b" "\n$(__rvm_env_string):\n"
- info_sections
- done
- fi
|