home: direnv: add 'layout_uv'
All checks were successful
ci/woodpecker/push/check Pipeline was successful
All checks were successful
ci/woodpecker/push/check Pipeline was successful
I haven't really played with it yet, but from my small experiments this should be good enough for my (future) purposes.
This commit is contained in:
parent
8a6af0e5b7
commit
8d344b5d51
|
@ -23,3 +23,34 @@ layout_poetry() {
|
|||
watch_file pyproject.toml
|
||||
watch_file poetry.lock
|
||||
}
|
||||
|
||||
layout_uv() {
|
||||
if ! has uv; then
|
||||
# shellcheck disable=2016
|
||||
log_error 'layout_uv: `uv` is not in PATH'
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ! -f pyproject.toml ]]; then
|
||||
# shellcheck disable=2016
|
||||
log_error 'layout_uv: no pyproject.toml found. Use `uv init` to create one first'
|
||||
return 1
|
||||
fi
|
||||
|
||||
local default_venv="$PWD/.venv"
|
||||
: "${VIRTUAL_ENV:=$default_venv}"
|
||||
|
||||
# Use non-default venv path if required
|
||||
if [ "$VIRTUAL_ENV" != "$default_venv" ]; then
|
||||
export UV_PROJECT_ENVIRONMENT="$VIRTUAL_ENV"
|
||||
fi
|
||||
|
||||
# create venv if it doesn't exist
|
||||
uv venv -q
|
||||
|
||||
export VIRTUAL_ENV
|
||||
export UV_ACTIVE=1
|
||||
PATH_add "$VIRTUAL_ENV/bin"
|
||||
watch_file pyproject.toml
|
||||
watch_file uv.lock
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue