2020-03-04 19:58:43 +03:00
#
# This file must be used by invoking ". .\activate.ps1" from the command line.
# You cannot run it directly. See https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_scripts#script-scope-and-dot-sourcing
#
# To exit from the environment this creates, execute the 'deactivate' function.
#
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
}
2020-04-07 21:40:01 +03:00
function dtye ( ) {
2020-04-07 20:03:19 +03:00
$ProjectPath = Join-Path ( Join-Path $PSScriptRoot " src " ) " tye "
dotnet run - -project " $ProjectPath " @args
}
2020-03-04 19:58:43 +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
Remove-Item env : DOTNET_MULTILEVEL_LOOKUP -ea ignore
if ( -not $init ) {
2020-04-07 20:03:19 +03:00
# Remove the deactivate and dev-tye functions
2020-03-04 19:58:43 +03:00
Remove-Item function : deactivate
2020-04-07 21:40:01 +03:00
Remove-Item function : dtye
2020-03-04 19:58:43 +03:00
}
}
# Cleanup the environment
deactivate -init
$_OLD_PATH = $env:PATH
# Tell dotnet where to find itself
$env:DOTNET_ROOT = " $PSScriptRoot \.dotnet "
$ { env : DOTNET_ROOT ( x86 ) } = " $PSScriptRoot \.dotnet\x86 "
# 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 "
}