#!/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