direnv: Add custom stdlib extensions
This commit is contained in:
parent
577df9c887
commit
4422c3922c
2 changed files with 60 additions and 0 deletions
|
|
@ -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
59
direnv/direnvrc
Normal 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}"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue