69 lines
1.4 KiB
Text
69 lines
1.4 KiB
Text
# From https://github.com/direnv/direnv/wiki/Ruby#-chruby
|
|
use_chruby() {
|
|
local version
|
|
version="${1}"
|
|
|
|
[[ "${version}" == --auto ]] && version="$(read_version_file .ruby-version)"
|
|
[[ -z "${version}" ]] && return
|
|
|
|
local chruby
|
|
|
|
if has brew; then
|
|
local brew_prefix
|
|
brew_prefix="$(brew --prefix)"
|
|
|
|
if [[ -e "${brew_prefix}/opt/chruby/share/chruby/chruby.sh" ]]; then
|
|
chruby="${brew_prefix}/opt/chruby/share/chruby/chruby.sh"
|
|
fi
|
|
fi
|
|
|
|
[[ -z "${chruby}" ]] && [[ -e /usr/local/share/chruby/chruby.sh ]] &&
|
|
chruby=/usr/local/share/chruby/chruby.sh
|
|
|
|
[[ -z "${chruby}" ]] && return
|
|
|
|
source "${chruby}"
|
|
chruby "${version}"
|
|
}
|
|
|
|
# From https://github.com/direnv/direnv/wiki/Find-Up-with-Alternates
|
|
find_up_()
|
|
{
|
|
(
|
|
while true; do
|
|
for v in "${@}"; do
|
|
if [[ -f "${v}" ]]; then
|
|
echo "${PWD}/${v}"
|
|
return 0
|
|
fi
|
|
done
|
|
|
|
if [[ "${PWD}" == / ]] || [[ "${PWD}" == // ]]; then
|
|
return 1
|
|
fi
|
|
|
|
cd ..
|
|
done
|
|
)
|
|
}
|
|
|
|
read_version_file()
|
|
{
|
|
local file
|
|
file="$(find_up_ "${@}")"
|
|
|
|
[[ -z "${file}" ]] && return
|
|
|
|
watch_file "${file}"
|
|
ruby -e "puts ARGF.readline" 2> /dev/null "${file}"
|
|
}
|
|
|
|
# From https://github.com/direnv/direnv/wiki/Node#using-nvm
|
|
use_nvm() {
|
|
local node_version="$1"
|
|
|
|
nvm_sh="${NVM_DIR}/nvm.sh"
|
|
source $nvm_sh
|
|
# Make sure to run `nvm install $node_version` first.
|
|
nvm use $node_version
|
|
}
|