2019-02-06 22:20:49 +03:00
#
# This file must be used by invoking ". .\activate.ps1" from the command line.
2023-01-24 05:07:15 +03:00
# You cannot run it directly. See https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_scripts#script-scope-and-dot-sourcing
2019-02-20 22:20:34 +03:00
#
2019-02-06 22:20:49 +03:00
# To exit from the environment this creates, execute the 'deactivate' function.
#
2019-02-20 22:20:34 +03:00
if ( $MyInvocation . CommandOrigin -eq 'runspace' ) {
Write-Host -f Red " This script cannot be invoked directly. "
Write-Host -f Red " To function correctly, this script file must be 'dot sourced' by calling `" . $PSCommandPath `" (notice the dot at the beginning). "
exit 1
}
2019-02-06 22:20:49 +03:00
function deactivate ( [ switch ] $init ) {
# reset old environment variables
if ( Test-Path variable : _OLD_PATH ) {
$env:PATH = $_OLD_PATH
Remove-Item variable : _OLD_PATH
}
if ( test-path function : _old_prompt ) {
Set-Item Function : prompt -Value $function : _old_prompt -ea ignore
remove-item function : _old_prompt
}
Remove-Item env : DOTNET_ROOT -ea ignore
2021-09-20 22:33:59 +03:00
Remove-Item 'env:DOTNET_ROOT(x86)' -ea Ignore
2019-02-06 22:20:49 +03:00
Remove-Item env : DOTNET_MULTILEVEL_LOOKUP -ea ignore
if ( -not $init ) {
# Remove the deactivate function
Remove-Item function : deactivate
}
}
# Cleanup the environment
deactivate -init
$_OLD_PATH = $env:PATH
# Tell dotnet where to find itself
2019-06-08 03:19:41 +03:00
$env:DOTNET_ROOT = " $PSScriptRoot \.dotnet "
$ { env : DOTNET_ROOT ( x86 ) } = " $PSScriptRoot \.dotnet\x86 "
2019-02-06 22:20:49 +03:00
# Tell dotnet not to look beyond the DOTNET_ROOT folder for more dotnet things
$env:DOTNET_MULTILEVEL_LOOKUP = 0
# Put dotnet first on PATH
$env:PATH = " ${env:DOTNET_ROOT} ; ${env:PATH} "
# Set the shell prompt
if ( -not $env:DISABLE_CUSTOM_PROMPT ) {
$function : _old_prompt = $function : prompt
function dotnet_prompt {
# Add a prefix to the current prompt, but don't discard it.
write-host " ( $( split-path $PSScriptRoot -leaf ) ) " -nonewline
& $function : _old_prompt
}
Set-Item Function : prompt -Value $function : dotnet_prompt -ea ignore
}
Write-Host -f Magenta " Enabled the .NET Core environment. Execute 'deactivate' to exit. "
if ( -not ( Test-Path " ${env:DOTNET_ROOT} \dotnet.exe " ) ) {
Write-Host -f Yellow " .NET Core has not been installed yet. Run $PSScriptRoot \restore.cmd to install it. "
}
else {
Write-Host " dotnet = ${env:DOTNET_ROOT} \dotnet.exe "
}