-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathdirenvrc
More file actions
67 lines (57 loc) · 1.62 KB
/
direnvrc
File metadata and controls
67 lines (57 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use_poetry() {
if [[ ! -f pyproject.toml ]]; then
log_error 'No pyproject.toml found. Use `poetry new` or `poetry init` to create one first.'
exit 2
fi
if [[ -d venv ]]; then
VENV=$(realpath venv/bin)
elif [[ -d .venv ]]; then
VENV=$(realpath .venv/bin)
else
local VENV=$(dirname $(poetry run which python))
fi
export VIRTUAL_ENV=$(echo "$VENV" | rev | cut -d'/' -f2- | rev)
export POETRY_ACTIVE=1
PATH_add "$VENV"
}
use_uv() {
if [[ -d ".venv" ]]; then
VIRTUAL_ENV="$(pwd)/.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)/.venv"
fi
PATH_add "$VIRTUAL_ENV/bin"
export UV_ACTIVE=1 # or VENV_ACTIVE=1
export VIRTUAL_ENV
}
use_nvm() {
local version=${1:-}
if [[ -z "$version" ]] && [[ -f .nvmrc ]]; then
version=$(cat .nvmrc | tr -d '[:space:]')
fi
if [[ -z "$version" ]]; then
log_error "No version specified and no .nvmrc found"
return 1
fi
local NVM_DIR=${NVM_DIR:-$HOME/.nvm}
if ! [[ -d "$NVM_DIR" ]]; then
log_error "NVM_DIR not found: $NVM_DIR"
return 1
fi
local node_version_prefix
node_version_prefix=$(
source "$NVM_DIR/nvm.sh" --no-use
nvm_version_path "$(nvm_version "$version")"
)
if [[ -d "$node_version_prefix" ]]; then
PATH_add "$node_version_prefix/bin"
export NVM_BIN="$node_version_prefix/bin"
log_status "Using Node $(node --version) (via nvm)"
else
log_error "Node version $version not installed. Run: nvm install $version"
return 1
fi
}