spack/share/spack/setup-env.ps1
John W. Parent 5c742d4f2b
Hraden Spack's powershell interface (#37079)
Paths with spaces are an issue on Windows and our current powershell
scripts are not sufficiently hardended against their use.
This PR removes promlematic commandlets that do not work well with paths
with spaces and adds escape quotes in other areas where this could be an
issue.
2023-04-21 08:58:37 -05:00

60 lines
1.6 KiB
PowerShell

# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
Push-Location $PSScriptRoot/../..
$Env:SPACK_ROOT = $PWD.Path
Push-Location $PWD/..
$Env:spackinstdir = $PWD.Path
Pop-Location
Set-Variable -Name python_pf_ver -Value (Get-Command -Name python -ErrorAction SilentlyContinue).Path
# If python_pf_ver is not defined, we cannot find Python on the Path
# We next look for Spack vendored copys
if ($null -eq $python_pf_ver)
{
$python_pf_ver_list = Resolve-Path -Path "$PWD\Python*"
if ($python_pf_ver_list.Length -gt 0)
{
$py_path = $python_pf_ver_list[$python_pf_ver_list.Length-1].Path
$py_exe = "$py_path\python.exe"
}
else {
Write-Error -Message "Python was not found on system"
Write-Output "Please install Python or add Python to the PATH"
}
}
else{
Set-Variable -Name py_exe -Value $python_pf_ver
}
if (!$null -eq $py_path)
{
$Env:Path = "$py_path;$Env:Path"
}
if (!$null -eq $py_exe)
{
& "$py_exe" "$Env:SPACK_ROOT\bin\haspywin.py"
}
$Env:Path = "$Env:SPACK_ROOT\bin;$Env:Path"
if ($null -eq $Env:EDITOR)
{
$Env:EDITOR = "notepad"
}
Write-Output "*****************************************************************"
Write-Output "**************** Spack Package Manager **************************"
Write-Output "*****************************************************************"
function global:prompt
{
$pth = $(Convert-Path $(Get-Location)) | Split-Path -leaf
"[spack] PS $pth>"
}
Pop-Location