# This file must be dot sourced from PoSh; you cannot run it directly. Do this: . ./activate.ps1

$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)
    {
        $old_env = split-path $env:VIRTUAL_ENV -leaf
        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

$global:_OLD_VIRTUAL_PATH = $env:PATH
$env:PATH = "$env:VIRTUAL_ENV/Scripts;" + $env:PATH
if (!$env:VIRTUAL_ENV_DISABLE_PROMPT)
{
    function global:_old_virtual_prompt
    {
        ""
    }
    $function:_old_virtual_prompt = $function:prompt
    function global:prompt
    {
        # Add a prefix to the current prompt, but don't discard it.
        write-host "($( split-path $env:VIRTUAL_ENV -leaf )) " -nonewline
        & $function:_old_virtual_prompt
    }
}
