forked from Liquidmantis/PSCondaEnvs
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathactivate.ps1
More file actions
68 lines (57 loc) · 1.78 KB
/
activate.ps1
File metadata and controls
68 lines (57 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<#
.SYNOPSIS
Activates a conda virtualenv.
.DESCRIPTION
Activate.ps1 and deactivate.ps1 recreates the existing virtualenv BAT files in PS1 format so they "just work" inside a Powershell session.
This isn't idiomatic Powershell, just a translation.
#>
Param(
[string]$global:condaEnvName
)
# fix for pre-PS3 - creates $PSScriptRoot
if (-not $PSScriptRoot)
{
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
}
# Get location of Anaconda installation
$anacondaInstallPath = (get-item $PSScriptRoot).parent.FullName
# Build ENVS path
$env:ANACONDA_ENVS = $anacondaInstallPath + '\envs'
if (-not $condaEnvName)
{
Write-Host
Write-Host "Usage: activate envname [-UpdateRegistry]"
Write-Host
Write-Host "Deactivates previously activated Conda environment, then activates the chosen one."
Write-Host
Write-Host
exit
}
if (-not (Test-Path $env:ANACONDA_ENVS\$condaEnvName\Python.exe))
{
Write-Host
Write-Warning "No environment named `"$condaEnvName`" exists in $env:ANACONDA_ENVS."
Write-Host
Write-Host
exit
}
# Deactivate a previous activation if it is live
if (Test-Path env:\CONDA_DEFAULT_ENV) {
Invoke-Expression deactivate.ps1
}
$env:CONDA_DEFAULT_ENV = $condaEnvName
Write-Host
Write-Host "Activating environment `"$env:CONDA_DEFAULT_ENV...`""
$env:ANACONDA_BASE_PATH = $env:PATH
$env:PATH="$env:ANACONDA_ENVS\$env:CONDA_DEFAULT_ENV\;$env:ANACONDA_ENVS\$env:CONDA_DEFAULT_ENV\Scripts\;$env:ANACONDA_BASE_PATH"
Write-Host
Write-Host
# Capture existing user prompt
function global:condaUserPrompt {''}
$function:condaUserPrompt = $function:prompt
function global:prompt
{
# Add the virtualenv prefix to the current user prompt.
Write-Host "[$condaEnvName] " -nonewline -ForegroundColor Red
& $function:condaUserPrompt
}