From df89fe2c77ba95dd048bc7b0c0868742546fe0d5 Mon Sep 17 00:00:00 2001 From: Branch Vincent Date: Sat, 17 Aug 2024 10:12:44 -0700 Subject: [PATCH] direnv: add `layout uv` --- .config/direnv/direnvrc | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.config/direnv/direnvrc b/.config/direnv/direnvrc index d36d0e3..5dfe57f 100755 --- a/.config/direnv/direnvrc +++ b/.config/direnv/direnvrc @@ -17,6 +17,9 @@ layout_auto() { elif [[ -f poetry.lock ]]; then log_status "detected poetry project" layout poetry + elif [[ -f uv.lock ]]; then + log_status "detected uv project" + layout uv elif [[ -f pyproject.toml || -f setup.py ]]; then log_status "detected python project" layout python @@ -69,7 +72,7 @@ layout_python() { layout_poetry() { # Install, if deps are outdated if [[ ! -d .venv || poetry.lock -nt "$(echo .venv/lib/python*/site-packages)" ]]; then - uv venv -q + [ -d .venv ] || uv venv -q poetry install fi watch_file poetry.lock @@ -80,6 +83,19 @@ layout_poetry() { PATH_add "$VIRTUAL_ENV/bin" } +layout_uv() { + # Activate venv + export VIRTUAL_ENV="$PWD/.venv" + PATH_add "$VIRTUAL_ENV/bin" + + # Install, if deps are outdated + if [[ ! -d .venv || uv.lock -nt "$(echo .venv/lib/python*/site-packages)" ]]; then + uv sync --frozen + touch .venv/lib/python*/site-packages + fi + watch_file uv.lock +} + ### Pkgx ### # Usage: parse_version [version]