diff --git a/modules/virtual_environments/auto-venv/venv_helpers.nu b/modules/virtual_environments/auto-venv/venv_helpers.nu index 1d6ea10..5370083 100644 --- a/modules/virtual_environments/auto-venv/venv_helpers.nu +++ b/modules/virtual_environments/auto-venv/venv_helpers.nu @@ -23,6 +23,20 @@ export def venv-is-active [] { '__auto_venv' in (overlay list) } +# Creates a virtual environment under the current directory +export def 'venv-create' [] { + let venv_path = $env.PWD + let venv_name = ($env.PWD | path basename) + + let sys_posix = ['darwin', 'linux', 'unix', 'posix', 'gnu'] + let is_posix = (((sys).host.name | str downcase) in $sys_posix) + let python_name = if $is_posix {'python3'} else {'py.exe'} + run-external $python_name "-m" "venv" ".venv" "--clear" "--prompt" $venv_name + run-external $".venv/bin/($python_name)" "-m" "pip" "install" "-U" "pip" "wheel" "setuptools" + + let trigger_file = ([$env.PWD, $env.AUTO_VENV_TRIGGER] | path join) + ln -sf $'($env.FILE_PWD)/venvs/python-venv.nu' $trigger_file +} export def has-entered-venv [ after: path,