Skip to content

Commit 14f2486

Browse files
authored
Spack on Windows: fix shell scripts when root contains a space (spack#39875)
Enclose variable tracking root in quotes.
1 parent 87f99de commit 14f2486

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

bin/spack.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
::
1515
@echo off
1616

17-
set spack=%SPACK_ROOT%\bin\spack
17+
set spack="%SPACK_ROOT%"\bin\spack
1818

1919
::#######################################################################
2020
:: This is a wrapper around the spack command that forwards calls to

bin/spack.ps1

+16-17
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ function Set-SpackEnv {
5555

5656
function Invoke-SpackCD {
5757
if (Compare-CommonArgs $SpackSubCommandArgs) {
58-
python $Env:SPACK_ROOT/bin/spack cd -h
58+
python "$Env:SPACK_ROOT/bin/spack" cd -h
5959
}
6060
else {
61-
$LOC = $(python $Env:SPACK_ROOT/bin/spack location $SpackSubCommandArgs)
61+
$LOC = $(python "$Env:SPACK_ROOT/bin/spack" location $SpackSubCommandArgs)
6262
if (($NULL -ne $LOC)){
6363
if ( Test-Path -Path $LOC){
6464
Set-Location $LOC
@@ -75,54 +75,53 @@ function Invoke-SpackCD {
7575

7676
function Invoke-SpackEnv {
7777
if (Compare-CommonArgs $SpackSubCommandArgs[0]) {
78-
python $Env:SPACK_ROOT/bin/spack env -h
78+
python "$Env:SPACK_ROOT/bin/spack" env -h
7979
}
8080
else {
8181
$SubCommandSubCommand = $SpackSubCommandArgs[0]
8282
$SubCommandSubCommandArgs = $SpackSubCommandArgs[1..$SpackSubCommandArgs.Count]
8383
switch ($SubCommandSubCommand) {
8484
"activate" {
8585
if (Compare-CommonArgs $SubCommandSubCommandArgs) {
86-
python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs
86+
python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs
8787
}
8888
elseif ([bool]($SubCommandSubCommandArgs.Where({$_ -eq "--pwsh"}))) {
89-
python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs
89+
python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs
9090
}
9191
elseif (!$SubCommandSubCommandArgs) {
92-
python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs
92+
python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs
9393
}
9494
else {
95-
$SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params env activate "--pwsh" $SubCommandSubCommandArgs)
95+
$SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params env activate "--pwsh" $SubCommandSubCommandArgs)
9696
Set-SpackEnv $SpackEnv
9797
}
9898
}
9999
"deactivate" {
100100
if ([bool]($SubCommandSubCommandArgs.Where({$_ -eq "--pwsh"}))) {
101-
python $Env:SPACK_ROOT/bin/spack env deactivate $SubCommandSubCommandArgs
101+
python"$Env:SPACK_ROOT/bin/spack" env deactivate $SubCommandSubCommandArgs
102102
}
103103
elseif($SubCommandSubCommandArgs) {
104-
python $Env:SPACK_ROOT/bin/spack env deactivate -h
104+
python "$Env:SPACK_ROOT/bin/spack" env deactivate -h
105105
}
106106
else {
107-
$SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params env deactivate "--pwsh")
107+
$SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params env deactivate "--pwsh")
108108
Set-SpackEnv $SpackEnv
109109
}
110110
}
111-
default {python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs}
111+
default {python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs}
112112
}
113113
}
114114
}
115115

116116
function Invoke-SpackLoad {
117117
if (Compare-CommonArgs $SpackSubCommandArgs) {
118-
python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
118+
python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
119119
}
120120
elseif ([bool]($SpackSubCommandArgs.Where({($_ -eq "--pwsh") -or ($_ -eq "--list")}))) {
121-
python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
121+
python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
122122
}
123123
else {
124-
# python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs
125-
$SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs)
124+
$SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs)
126125
Set-SpackEnv $SpackEnv
127126
}
128127
}
@@ -131,7 +130,7 @@ function Invoke-SpackLoad {
131130
$SpackCMD_params, $SpackSubCommand, $SpackSubCommandArgs = Read-SpackArgs $args
132131

133132
if (Compare-CommonArgs $SpackCMD_params) {
134-
python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
133+
python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs
135134
exit $LASTEXITCODE
136135
}
137136

@@ -143,5 +142,5 @@ switch($SpackSubCommand)
143142
"env" {Invoke-SpackEnv}
144143
"load" {Invoke-SpackLoad}
145144
"unload" {Invoke-SpackLoad}
146-
default {python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs}
145+
default {python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs}
147146
}

0 commit comments

Comments
 (0)