This commit is contained in:
Michal Cichra 2017-11-06 14:53:07 +00:00 committed by GitHub
commit a4fbdff727

View file

@ -8,7 +8,7 @@
# #
# zstyle :omz:plugins:chruby path /local/path/to/chruby.sh # zstyle :omz:plugins:chruby path /local/path/to/chruby.sh
# zstyle :omz:plugins:chruby auto /local/path/to/auto.sh # zstyle :omz:plugins:chruby auto /local/path/to/auto.sh
# #
# TODO # TODO
# - autodetermine correct source path on non OS X systems # - autodetermine correct source path on non OS X systems
# - completion if ruby-install exists # - completion if ruby-install exists
@ -20,10 +20,6 @@ _homebrew-installed() {
whence brew &> /dev/null whence brew &> /dev/null
} }
_chruby-from-homebrew-installed() {
[ -r $(brew --prefix chruby) ] &> /dev/null
}
_ruby-build_installed() { _ruby-build_installed() {
whence ruby-build &> /dev/null whence ruby-build &> /dev/null
} }
@ -34,57 +30,51 @@ _ruby-install-installed() {
# Simple definition completer for ruby-build # Simple definition completer for ruby-build
if _ruby-build_installed; then if _ruby-build_installed; then
_ruby-build() { compadd $(ruby-build --definitions) } _ruby-build() {
compadd $(ruby-build --definitions)
}
compdef _ruby-build ruby-build compdef _ruby-build ruby-build
fi fi
_source_from_omz_settings() { function () {
local _chruby_path local _path
local _chruby_auto local _auto
local _prefix="/usr/local/share/chruby"
zstyle -s :omz:plugins:chruby path _chruby_path
zstyle -s :omz:plugins:chruby auto _chruby_auto
if [[ -r ${_chruby_path} ]]; then # Honor explicit user preference
source ${_chruby_path} zstyle -s :omz:plugins:chruby path _path
fi zstyle -s :omz:plugins:chruby auto _auto
if [[ -r ${_chruby_auto} ]]; then # Default to /usr/local/share/chruby if either is not defined
source ${_chruby_auto} [[ -r "$_path" ]] || _path="${_prefix}/chruby.sh"
fi [[ -r "$_auto" ]] || _auto="${_prefix}/auto.sh"
}
_chruby_dirs() { # Fall back on homebrew
chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies) if [[ ! ( -r "$_path" && -r "$_auto" ) ]]; then
for dir in chrubydirs; do if _homebrew-installed; then
if [[ -d $dir ]]; then _prefix="$(brew --prefix chruby 2> /dev/null)/share/chruby"
RUBIES+=$dir [[ -r "$_path" ]] || _path="${_prefix}/chruby.sh"
[[ -r "$_auto" ]] || _auto="${_prefix}/auto.sh"
fi fi
done fi
}
if _homebrew-installed && _chruby-from-homebrew-installed ; then if [[ -r "$_path" ]]; then
source $(brew --prefix chruby)/share/chruby/chruby.sh source "$_path"
source $(brew --prefix chruby)/share/chruby/auto.sh fi
_chruby_dirs
elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then if [[ -r "$_auto" ]]; then
source /usr/local/share/chruby/chruby.sh source "$_auto"
source /usr/local/share/chruby/auto.sh fi
_chruby_dirs }
else
_source_from_omz_settings
_chruby_dirs
fi
function ensure_chruby() { function ensure_chruby() {
$(whence chruby) $(whence chruby)
} }
function current_ruby() { function current_ruby() {
local _ruby local _ruby="$(chruby | grep \* | tr -d '* ')"
_ruby="$(chruby |grep \* |tr -d '* ')" if [[ -n "$_ruby" ]]; then
if [[ $(chruby |grep -c \*) -eq 1 ]]; then echo "$_ruby"
echo ${_ruby}
else else
echo "system" echo "system"
fi fi