forked from nushell/nu_scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
venv.nu
25 lines (22 loc) · 645 Bytes
/
venv.nu
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
export def --env activate [venv_dir] {
let venv_abs_dir = ($venv_dir | path expand)
let venv_name = ($venv_abs_dir | path basename)
let old_path = $env.PATH
let new_path = (venv-path $venv_abs_dir)
let new_env = ({VENV_OLD_PATH: $old_path, VIRTUAL_ENV: $venv_name} | merge $new_path)
load-env $new_env
}
def "venv-path" [venv_dir] {
let env_path = [
$venv_dir,
([$venv_dir, "bin"] | path join)
]
return {
PATH: ($env.PATH | prepend $env_path)
}
}
export def --env deactivate [] {
$env.PATH = $env.VENV_OLD_PATH
hide-env VIRTUAL_ENV
hide-env VENV_OLD_PATH
}