-
-
Save richo/7921267 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
,ruby() { | |
case "$1" in | |
-h|--help) | |
echo "usage: _ruby [version] [opts]" | |
;; | |
-v|--version) | |
echo "_ruby version 0.0.9" | |
;; | |
system) | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
export PATH=$(echo "$PATH" | \sed -e "s|${_ruby_PATH_fragment}||" -e "s|::|:|" -e "s|^:||" -e "s|:$||") | |
fi | |
_ruby_PATH_fragment='' | |
if [ -n "${ruby_ROOT}" ] | |
then | |
unset ruby_ROOT | |
fi | |
unset RUBYOPT | |
unset GEM_HOME | |
unset GEM_ROOT | |
unset GEM_PATH | |
;; | |
"") | |
for i in ${__ruby_LIST}; do | |
if [ "$i" = "${ruby_ROOT}" ] | |
then | |
star='*' | |
else | |
star=' ' | |
fi | |
echo " $star $(basename $i)" | |
done | |
;; | |
install) | |
ruby-build "$1" "$2" | |
;; | |
*) | |
for i in ${__ruby_LIST}; do | |
if [ "$(basename $i)" = "$1" ] | |
then | |
if [ -n "${ruby_ROOT}" ] | |
then | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
export PATH=$(echo "$PATH" | \sed -e "s|${_ruby_PATH_fragment}||" -e "s|::|:|" -e "s|^:||" -e "s|:$||") | |
fi | |
_ruby_PATH_fragment='' | |
if [ -n "${ruby_ROOT}" ] | |
then | |
unset ruby_ROOT | |
fi | |
unset RUBYOPT | |
unset GEM_HOME | |
unset GEM_ROOT | |
unset GEM_PATH | |
fi | |
export ruby_ROOT="$i" | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
export PATH=$(echo "$PATH" | \sed -e "s|${_ruby_PATH_fragment}||" -e "s|::|:|" -e "s|^:||" -e "s|:$||") | |
fi | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
_ruby_PATH_fragment="${_ruby_PATH_fragment}:${ruby_ROOT}/bin" | |
else | |
_ruby_PATH_fragment="${ruby_ROOT}/bin" | |
fi | |
export PATH="${_ruby_PATH_fragment}:${PATH}" | |
export RUBYOPT="$2" | |
if [ "$UID" -gt 0 ] | |
then | |
export GEM_HOME="$HOME/.gem/$(basename $i)" | |
export GEM_ROOT="$HOME/.gem/$(basename $i)" | |
export GEM_PATH="$HOME/.gem/$(basename $i)" | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
export PATH=$(echo "$PATH" | \sed -e "s|${_ruby_PATH_fragment}||" -e "s|::|:|" -e "s|^:||" -e "s|:$||") | |
fi | |
if [ -n "${_ruby_PATH_fragment}" ] | |
then | |
_ruby_PATH_fragment="${_ruby_PATH_fragment}:$HOME/.gem/$(basename $i)/bin" | |
else | |
_ruby_PATH_fragment="$HOME/.gem/$(basename $i)/bin" | |
fi | |
export PATH="${_ruby_PATH_fragment}:${PATH}" | |
fi | |
return 0 | |
fi | |
done | |
echo "_ruby: unknown ruby: $1" | |
;; | |
esac | |
} | |
_ruby_completer() { | |
reply=('system') | |
for i in ${__ruby_LIST}; do | |
reply+=($(basename $i)) | |
done | |
} | |
compctl -K _ruby_completer ,ruby |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment