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:
|
- link:
|
||||||
~/bin: bin/
|
~/bin: bin/
|
||||||
|
~/.config/direnv/direnvrc: direnv/direnvrc
|
||||||
~/.config/flake8: etc/flake8
|
~/.config/flake8: etc/flake8
|
||||||
~/.config/git: git/
|
~/.config/git: git/
|
||||||
~/.config/hg: hg/
|
~/.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