1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-08-01 22:57:46 +00:00
nu_scripts/modules/virtual_environments/auto-venv/README.md
Antoine Stevan a61256da0e
use $env. instead of let-env (#543)
related to nushell/nushell#9574

Commands used
```nushell
sd --string-mode "let-env " '$env.' **/*
git rst before_v0.60/
```
2023-07-01 10:40:16 +02:00

1.3 KiB

Auto virtual environment scripts

The scripts in this directory activate virtual environments whenever you cd into a directory with a "trigger" file

Usage

  1. set $env.AUTO_VENV_TRIGGER as the preferred name of a trigger file
  2. import auto-venv into your environment
  3. Create a symlink via ln -s of the script file ./auto-venv/venvs/python-venv.nu to a trigger file in project at /path/to/project/$AUTO_VENV_TRIGGER
  4. cd into /path/to/project/

For example:

# config.nu

export-env {
    $env.AUTO_VENV_TRIGGER = '__auto-venv.nu'

    source-env ~/path/to/nu_scripts/modules/virtual_environments/auto-venv/auto-venv.nu
}

use ~/path/to/nu_scripts/modules/virtual_environments/auto-venv/auto-venv.nu *

When auto-venv detects that a file of that name exists in the folder you cd'ed into (or one of it's parents), it will automatically enable an overlay (as defined by the trigger file).

An example overlay for python venv is in ./venvs

NOTE: the trigger file must export a custom command called auto-venv-on-enter that takes in the $env (this is the environment before the overlay was enabled).

Limitations

  • Due to limitations with overlay naming, you cannot nest auto-venv triggers, even for separate languages / toolchains