]> granicus.if.org Git - python/commitdiff
Closes #18479: Changed venv Activate.ps1 to make deactivate a function, and removed...
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 19 Jul 2013 10:03:55 +0000 (11:03 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 19 Jul 2013 10:03:55 +0000 (11:03 +0100)
Lib/venv/scripts/nt/Activate.ps1
Lib/venv/scripts/nt/Deactivate.ps1 [deleted file]
Misc/NEWS

index 1c5ef98726a5a9750bd8a7969ed64cd4aa214041..df789633ce4a4bccaa644d33f21f73c1964e2c88 100644 (file)
@@ -1,25 +1,40 @@
-$env:VIRTUAL_ENV="__VENV_DIR__"\r
+function global:deactivate ([switch]$NonDestructive) {\r
+    # Revert to original values\r
+    if (Test-Path function:_OLD_VIRTUAL_PROMPT) {\r
+        copy-item function:_OLD_VIRTUAL_PROMPT function:prompt\r
+        remove-item function:_OLD_VIRTUAL_PROMPT\r
+    }\r
 \r
-# Revert to original values\r
-if (Test-Path function:_OLD_VIRTUAL_PROMPT) {\r
-    copy-item function:_OLD_VIRTUAL_PROMPT function:prompt\r
-    remove-item function:_OLD_VIRTUAL_PROMPT\r
-}\r
+    if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) {\r
+        copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME\r
+        remove-item env:_OLD_VIRTUAL_PYTHONHOME\r
+    }\r
 \r
-if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) {\r
-    copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME\r
-    remove-item env:_OLD_VIRTUAL_PYTHONHOME\r
-}\r
+    if (Test-Path env:_OLD_VIRTUAL_PATH) {\r
+        copy-item env:_OLD_VIRTUAL_PATH env:PATH\r
+        remove-item env:_OLD_VIRTUAL_PATH\r
+    }\r
 \r
-if (Test-Path env:_OLD_VIRTUAL_PATH) {\r
-    copy-item env:_OLD_VIRTUAL_PATH env:PATH\r
-    remove-item env:_OLD_VIRTUAL_PATH\r
+    if (Test-Path env:VIRTUAL_ENV) {\r
+        remove-item env:VIRTUAL_ENV\r
+    }\r
+\r
+    if (!$NonDestructive) {\r
+        # Self destruct!\r
+        remove-item function:deactivate\r
+    }\r
 }\r
 \r
+deactivate -nondestructive\r
+
+$env:VIRTUAL_ENV="__VENV_DIR__"\r
+\r
 # Set the prompt to include the env name\r
+# Make sure _OLD_VIRTUAL_PROMPT is global\r
+function global:_OLD_VIRTUAL_PROMPT {""}\r
 copy-item function:prompt function:_OLD_VIRTUAL_PROMPT\r
-function prompt {\r
-    Write-Host -NoNewline -ForegroundColor Green '[__VENV_NAME__]'\r
+function global:prompt {\r
+    Write-Host -NoNewline -ForegroundColor Green '__VENV_NAME__'\r
     _OLD_VIRTUAL_PROMPT\r
 }\r
 \r
diff --git a/Lib/venv/scripts/nt/Deactivate.ps1 b/Lib/venv/scripts/nt/Deactivate.ps1
deleted file mode 100644 (file)
index 3d1e96b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# Revert to original values\r
-if (Test-Path function:_OLD_VIRTUAL_PROMPT) {\r
-    copy-item function:_OLD_VIRTUAL_PROMPT function:prompt\r
-    remove-item function:_OLD_VIRTUAL_PROMPT\r
-}\r
-\r
-if (Test-Path env:_OLD_VIRTUAL_PYTHONHOME) {\r
-    copy-item env:_OLD_VIRTUAL_PYTHONHOME env:PYTHONHOME\r
-    remove-item env:_OLD_VIRTUAL_PYTHONHOME\r
-}\r
-\r
-if (Test-Path env:_OLD_VIRTUAL_PATH) {\r
-    copy-item env:_OLD_VIRTUAL_PATH env:PATH\r
-    remove-item env:_OLD_VIRTUAL_PATH\r
-}\r
-\r
-if (Test-Path env:VIRTUAL_ENV) {\r
-    remove-item env:VIRTUAL_ENV\r
-}\r
index 9cf6aa03ef2adc23152b43aa25a20982e66aba1a..9e6c5558a36ae09c3c9a2c5b78c5910219179dd1 100644 (file)
--- 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