dotfiles/shell/chruby

43 lines
1.1 KiB
Bash
Executable file

if [[ -f /opt/arch/share/chruby/chruby.sh ]]; then
source /opt/arch/share/chruby/chruby.sh
elif [[ -f $HOME/.nix-profile/share/chruby/chruby.sh ]]; then
source $HOME/.nix-profile/share/chruby/chruby.sh
elif [[ -f /opt/arch/share/chruby/chruby.sh ]]; then
source /opt/arch/share/chruby/chruby.sh
elif [[ -f /usr/local/share/chruby/chruby.sh ]]; then
source /usr/local/share/chruby/chruby.sh
fi
_has-chruby() {
type chruby >/dev/null 2>&1
}
_ruby-version() {
local check_dir=$PWD
local next_check_dir=${check_dir%/*}
while [ "$next_check_dir" != "" ]; do
if [[ -f "$check_dir/.ruby-version" ]]; then
cat "$check_dir/.ruby-version"
return
fi
check_dir="$next_check_dir"
next_check_dir=${check_dir%/*}
done
if [[ -f $HOME/.ruby-version ]]; then
cat $HOME/.ruby-version
return
fi
false
}
_auto-chruby() {
if ! type -f chruby > /dev/null 2>&1; then
return
fi
local ruby_version=$(_ruby-version)
if [[ -n "${ruby_version}" ]]; then
chruby "${ruby_version}"
fi
}
# vim: ft=bash