diff --git a/.envrc b/.envrc index 5c687e397..b0f9f12f0 100644 --- a/.envrc +++ b/.envrc @@ -1,6 +1,17 @@ layout_uv() { - uv venv .devenv/state/venv - source_env .devenv/state/venv/bin/activate + if [[ -d ".venv" ]]; then + VIRTUAL_ENV="$(pwd)/.devenv/state/venv" + fi + + if [[ -z $VIRTUAL_ENV || ! -d $VIRTUAL_ENV ]]; then + log_status "No virtual environment exists. Executing \`uv venv\` to create one." + uv venv + VIRTUAL_ENV="$(pwd)/.devenv/state/venv" + fi + + PATH_add "$VIRTUAL_ENV/bin" + export UV_ACTIVE=1 # or VENV_ACTIVE=1 + export VIRTUAL_ENV } source_url "https://raw.githubusercontent.com/cachix/devenv/d1f7b48e35e6dee421cfd0f51481d17f77586997/direnvrc" "sha256-YBzqskFZxmNb3kYVoKD9ZixoPXJh1C9ZvTLGFRkauZ0="