# source $HOME/.nix-profile/share/nix-direnv/direnvrc source `brew --prefix`/share/chruby/chruby.sh layout_k8s() { if [ $commands[kubectl] ]; then source <(kubectl completion zsh) fi } # https://github.com/direnv/direnv/issues/98#issuecomment-33677881 use_ruby() { local ver=$1 if [[ -z $ver ]] && [[ -f .ruby-version ]]; then ver=$(cat .ruby-version) fi if [[ -z $ver ]]; then echo Unknown ruby version exit 1 fi chruby $ver layout ruby # For some reason, the PATH order is unstable and sometimes Ruby's # bin directory is in front of the direnv one, so force the direnv # bin directory to take precedence PATH_add ./.direnv/bin } # https://github.com/direnv/direnv/wiki/Python/#poetry layout_poetry() { PYPROJECT_TOML="${PYPROJECT_TOML:-pyproject.toml}" if [[ ! -f "$PYPROJECT_TOML" ]]; then log_status "No pyproject.toml found. Executing \`poetry init\` to create a \`$PYPROJECT_TOML\` first." poetry init fi if [[ -d ".venv" ]]; then VIRTUAL_ENV="$(pwd)/.venv" else VIRTUAL_ENV=$(poetry env info --path 2>/dev/null ; true) fi if [[ -z $VIRTUAL_ENV || ! -d $VIRTUAL_ENV ]]; then log_status "No virtual environment exists. Executing \`poetry install\` to create one." poetry install VIRTUAL_ENV=$(poetry env info --path) fi PATH_add "$VIRTUAL_ENV/bin" export POETRY_ACTIVE=1 export VIRTUAL_ENV }