From 9007dd7274efe34c123c0c6d874f5395e3cfeb7f Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Fri, 19 Jul 2013 11:03:55 +0100 Subject: Closes #18479: Changed venv Activate.ps1 to make deactivate a function, and removed Deactivate.ps1. --- Lib/venv/scripts/nt/Activate.ps1 | 45 +++++++++++++++++++++++++------------- Lib/venv/scripts/nt/Deactivate.ps1 | 19 ---------------- Misc/NEWS | 3 +++ 3 files changed, 33 insertions(+), 34 deletions(-) delete mode 100644 Lib/venv/scripts/nt/Deactivate.ps1 diff --git a/Lib/venv/scripts/nt/Activate.ps1 b/Lib/venv/scripts/nt/Activate.ps1 index 1c5ef98..df78963 100644 --- a/Lib/venv/scripts/nt/Activate.ps1 +++ b/Lib/venv/scripts/nt/Activate.ps1 @@ -1,25 +1,40 @@ -$env:VIRTUAL_ENV="__VENV_DIR__" +function global:deactivate ([switch]$NonDestructive) { + # Revert to original values + if (Test-Path function:_OLD_VIRTUAL_PROMPT) { + copy-item function:_OLD_VIRTUAL_PROMPT function:prompt + remove-item function:_OLD_VIRTUAL_PROMPT + } -# Revert to original values -if (Test-Path function:_OLD_VIRTUAL_PROMPT) { - copy-item function:_OLD_VIRTUAL_PROMPT function:prompt - remove-item function:_OLD_VIRTUAL_PROMPT -} + if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { + copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME + remove-item env:_OLD_VIRTUAL_PYTHONHOME + } -if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { - copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME - remove-item env:_OLD_VIRTUAL_PYTHONHOME -} + if (Test-Path env:_OLD_VIRTUAL_PATH) { + copy-item env:_OLD_VIRTUAL_PATH env:PATH + remove-item env:_OLD_VIRTUAL_PATH + } -if (Test-Path env:_OLD_VIRTUAL_PATH) { - copy-item env:_OLD_VIRTUAL_PATH env:PATH - remove-item env:_OLD_VIRTUAL_PATH + if (Test-Path env:VIRTUAL_ENV) { + remove-item env:VIRTUAL_ENV + } + + if (!$NonDestructive) { + # Self destruct! + remove-item function:deactivate + } } +deactivate -nondestructive + +$env:VIRTUAL_ENV="__VENV_DIR__" + # Set the prompt to include the env name +# Make sure _OLD_VIRTUAL_PROMPT is global +function global:_OLD_VIRTUAL_PROMPT {""} copy-item function:prompt function:_OLD_VIRTUAL_PROMPT -function prompt { - Write-Host -NoNewline -ForegroundColor Green '[__VENV_NAME__]' +function global:prompt { + Write-Host -NoNewline -ForegroundColor Green '__VENV_NAME__' _OLD_VIRTUAL_PROMPT } diff --git a/Lib/venv/scripts/nt/Deactivate.ps1 b/Lib/venv/scripts/nt/Deactivate.ps1 deleted file mode 100644 index 3d1e96b..0000000 --- a/Lib/venv/scripts/nt/Deactivate.ps1 +++ /dev/null @@ -1,19 +0,0 @@ -# Revert to original values -if (Test-Path function:_OLD_VIRTUAL_PROMPT) { - copy-item function:_OLD_VIRTUAL_PROMPT function:prompt - remove-item function:_OLD_VIRTUAL_PROMPT -} - -if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) { - copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME - remove-item env:_OLD_VIRTUAL_PYTHONHOME -} - -if (Test-Path env:_OLD_VIRTUAL_PATH) { - copy-item env:_OLD_VIRTUAL_PATH env:PATH - remove-item env:_OLD_VIRTUAL_PATH -} - -if (Test-Path env:VIRTUAL_ENV) { - remove-item env:VIRTUAL_ENV -} diff --git a/Misc/NEWS b/Misc/NEWS index 9cf6aa0..9e6c555 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -159,6 +159,9 @@ Core and Builtins Library ------- +- Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and + removed Deactivate.ps1. + - Issue #18480: Add missing call to PyType_Ready to the _elementtree extension. - Issue #17778: Fix test discovery for test_multiprocessing. (Patch by -- cgit v0.12