Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 152 lines (147 sloc) 3.816 kB
#!/usr/bin/env bash
add()
{
token=${1:-""}
eval "${token}_flag=1"
shift
if
[[ -n "$format" ]]
then
[[ ${previous_is_format_var:-0} == 1 ]] && eval "${token}_prefix_flag=1"
format="${format}\$${token}"
else
format="\$${token}"
fi
previous_is_format_var=1
}
add_raw_token()
{
previous_is_format_var=0
token=${1:-""}
format="${format:-""}${token}"
}
rvm_gemset_separator="${rvm_gemset_separator:-"@"}"
ruby=$(
builtin command -v ruby | GREP_OPTIONS="" \grep -v $rvm_path/bin/ruby
)
if
[[ -n "$ruby" && -n "$(echo "$ruby" | awk '/rvm/{print}')" ]]
then
unset format
while
[[ $# -gt 0 ]]
do
token="$1"
shift
case "$token" in
i|interpreter) add "interpreter" ;;
v|version) add "version" ;;
p|patchlevel) add "patchlevel" ;;
r|revision) add "revision" ;;
a|architecture) add "architecture" ;;
g|gemset) add "gemset" ;;
u|unicode) add "unicode" ;;
s|system) ;; #skip when in ruby
-d|--no-default) no_default=1 ;;
*) add_raw_token "$token" ;;
esac
done
if
[[ -z "${format:-""}" && -z "$no_default" ]]
then
for default in interpreter version patchlevel gemset
do
add "$default"
done
fi
ruby_string=$(dirname "$ruby" | xargs dirname | xargs basename)
if
[[ -n "$no_default" && -n "${format:-""}" ]]
then
# Do not display anything if no default flag was provided
# and we are using the default ruby
# Only people who explicitely ask for this will have the
# slight performance penalty associated.
[[ "$(rvm tools identifier)" != "$(rvm alias show default)" ]] || exit 0
fi
strings=(${ruby_string//-/ })
if
(( ${interpreter_flag:-0} )) || [[ -n "$unicode_flag" ]]
then
interpreter=${strings[0]}
(( ${interpreter_prefix_flag:-0} )) && interpreter="-${interpreter}"
fi
if
(( ${version_flag:-0} )) || [[ -n "$unicode_flag" ]]
then
version=${strings[1]}
(( ${version_prefix_flag:-0} )) && version="-${version}"
fi
if
(( ${#strings[@]} > 2 ))
then
if
(( ${patchlevel_flag:-0} ))
then
patchlevel=${strings[2]}
(( ${patchlevel_prefix_flag:-0} )) && patchlevel="-${patchlevel}"
fi
fi
if
(( ${architecture_flag:-0} ))
then
architecture="$(echo "$(ruby -v)" | sed 's/^.*\[//' | sed 's/\].*$//')"
(( ${architecture_prefix_flag:-0} )) && architecture="-${architecture}"
fi
if
(( ${gemset_flag:-0} ))
then
case "${GEM_HOME:-""}" in
(*${rvm_gemset_separator:-"@"}*)
gemset="${rvm_gemset_separator:-"@"}${GEM_HOME/*${rvm_gemset_separator:-"@"}/}"
;;
esac
fi
if
(( ${unicode_flag:-0} ))
then
case "$interpreter" in
(jruby) unicode="" ;;
(rbx) unicode="" ;;
(ree) unicode="" ;;
(macruby) unicode="" ;;
(maglev) unicode="" ;;
(ironruby) unicode="" ;;
(system) unicode="" ;;
(goruby) unicode="";;
(ruby)
case ${version:-""} in
(1.8.6) unicode="➇❻" ;;
(1.8.7) unicode="➇❼" ;;
(1.8*) unicode="" ;;
(1.9.1) unicode="➈❶" ;;
(1.9.2) unicode="➈❷" ;;
(1.9.3) unicode="➈❸" ;;
(*) unicode="⦿" ;;
esac ;;
(*) unicode="⦿" ;;
esac
if
echo "$ruby_string" | GREP_OPTIONS="" \grep '-head' >/dev/null 2>&1
then
unicode="${unicode}"
fi
(( ${unicode_prefix_flag:-0} )) && unicode="-${unicode}"
fi
eval "echo \"$format\""
else
while
(( $# ))
do
token="$1"
shift
case "$token" in
s|system) echo "system" ;;
esac
done
fi
Jump to Line
Something went wrong with that request. Please try again.