60 lines
1.8 KiB
PowerShell
60 lines
1.8 KiB
PowerShell
$script:THIS_PATH = $myinvocation.mycommand.path
|
|
$script:BASE_DIR = Split-Path (Resolve-Path "$THIS_PATH/..") -Parent
|
|
|
|
function global:deactivate([switch] $NonDestructive) {
|
|
if (Test-Path variable:_OLD_VIRTUAL_PATH) {
|
|
$env:PATH = $variable:_OLD_VIRTUAL_PATH
|
|
Remove-Variable "_OLD_VIRTUAL_PATH" -Scope global
|
|
}
|
|
|
|
if (Test-Path function:_old_virtual_prompt) {
|
|
$function:prompt = $function:_old_virtual_prompt
|
|
Remove-Item function:\_old_virtual_prompt
|
|
}
|
|
|
|
if ($env:VIRTUAL_ENV) {
|
|
Remove-Item env:VIRTUAL_ENV -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
if (!$NonDestructive) {
|
|
# Self destruct!
|
|
Remove-Item function:deactivate
|
|
Remove-Item function:pydoc
|
|
}
|
|
}
|
|
|
|
function global:pydoc {
|
|
python -m pydoc $args
|
|
}
|
|
|
|
# unset irrelevant variables
|
|
deactivate -nondestructive
|
|
|
|
$VIRTUAL_ENV = $BASE_DIR
|
|
$env:VIRTUAL_ENV = $VIRTUAL_ENV
|
|
|
|
New-Variable -Scope global -Name _OLD_VIRTUAL_PATH -Value $env:PATH
|
|
|
|
$env:PATH = "$env:VIRTUAL_ENV/__BIN_NAME____PATH_SEP__" + $env:PATH
|
|
if (!$env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
|
function global:_old_virtual_prompt {
|
|
""
|
|
}
|
|
$function:_old_virtual_prompt = $function:prompt
|
|
|
|
if ("__VIRTUAL_PROMPT__" -ne "") {
|
|
function global:prompt {
|
|
# Add the custom prefix to the existing prompt
|
|
$previous_prompt_value = & $function:_old_virtual_prompt
|
|
("(__VIRTUAL_PROMPT__) " + $previous_prompt_value)
|
|
}
|
|
}
|
|
else {
|
|
function global:prompt {
|
|
# Add a prefix to the current prompt, but don't discard it.
|
|
$previous_prompt_value = & $function:_old_virtual_prompt
|
|
$new_prompt_value = "($( Split-Path $env:VIRTUAL_ENV -Leaf )) "
|
|
($new_prompt_value + $previous_prompt_value)
|
|
}
|
|
}
|
|
}
|