1
0
Fork 0

direnv: Add custom stdlib extensions

This commit is contained in:
Jeremy Kaplan 2019-10-03 10:32:50 -07:00 committed by Jeremy Kaplan
commit 4422c3922c
2 changed files with 60 additions and 0 deletions

View file

@ -5,6 +5,7 @@
- link:
~/bin: bin/
~/.config/direnv/direnvrc: direnv/direnvrc
~/.config/flake8: etc/flake8
~/.config/git: git/
~/.config/hg: hg/

59
direnv/direnvrc Normal file
View file

@ -0,0 +1,59 @@
# 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}"
}