Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions modules/virtual_environments/auto-venv/auto-venv.nu
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export-env {

def default-hooks [] {
(if ($env.config.hooks.env_change.PWD != null) {
[$env.config.hooks.env_change.PWD]
$env.config.hooks.env_change.PWD
}
else {
[]
Expand All @@ -33,24 +33,22 @@ def build-hooks [] {

let on_enter = '
let _env = $env
let pwd = $_env.PWD

let trigger = (path_extensions path find-sub . __trigger__ --type ["symlink", "file"])
if ($trigger | is-empty) { return }

cd ($trigger | path dirname)
overlay use __trigger__ as __auto_venv

cd ($pwd)

auto-venv-on-enter $_env

hide _env
hide pwd
hide trigger
'

let on_exit = '
overlay hide __auto_venv --keep-env [PWD]
if (venv_helpers venv-is-active) {
overlay hide __auto_venv --keep-env [PWD]
}
'

let on_enter = ($on_enter | str replace -a '__trigger__' $trigger)
Expand Down
4 changes: 2 additions & 2 deletions modules/virtual_environments/auto-venv/path_extensions.nu
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,6 @@ export def "path find-sub" [
);

if ($paths != null) and ($paths | length) > 0 {
[ ($paths | first), $subfolder ] | path join
} else {[]}
[ ($paths | last), $subfolder ] | path join
} else { null }
}
2 changes: 1 addition & 1 deletion modules/virtual_environments/auto-venv/venv_helpers.nu
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def get-env [
}

export def venv-is-active [] {
'__auto_venv' in (overlay list)
'__auto_venv' in (overlay list | where active | get name)
}

# Creates a virtual environment under the current directory
Expand Down
Loading