46 lines
704 B
Bash
46 lines
704 B
Bash
|
cite about-plugin
|
||
|
about-plugin 'source into environment when cding to directories'
|
||
|
|
||
|
if [[ -n "${ZSH_VERSION}" ]]
|
||
|
then __array_offset=0
|
||
|
else __array_offset=1
|
||
|
fi
|
||
|
|
||
|
autoenv_init()
|
||
|
{
|
||
|
typeset target home _file
|
||
|
typeset -a _files
|
||
|
target=$1
|
||
|
home="$(dirname "$HOME")"
|
||
|
|
||
|
_files=( $(
|
||
|
while [[ "$PWD" != "/" && "$PWD" != "$home" ]]
|
||
|
do
|
||
|
_file="$PWD/.env"
|
||
|
if [[ -e "${_file}" ]]
|
||
|
then echo "${_file}"
|
||
|
fi
|
||
|
builtin cd ..
|
||
|
done
|
||
|
) )
|
||
|
|
||
|
_file=${#_files[@]}
|
||
|
while (( _file > 0 ))
|
||
|
do
|
||
|
source "${_files[_file-__array_offset]}"
|
||
|
: $(( _file -= 1 ))
|
||
|
done
|
||
|
}
|
||
|
|
||
|
cd()
|
||
|
{
|
||
|
if builtin cd "$@"
|
||
|
then
|
||
|
autoenv_init
|
||
|
return 0
|
||
|
else
|
||
|
echo "else?"
|
||
|
return $?
|
||
|
fi
|
||
|
}
|