Spack on Windows: fix shell scripts when root contains a space (#39875)
Enclose variable tracking root in quotes.
This commit is contained in:
		| @@ -55,10 +55,10 @@ function Set-SpackEnv { | ||||
|  | ||||
| function Invoke-SpackCD { | ||||
|     if (Compare-CommonArgs $SpackSubCommandArgs) { | ||||
|         python $Env:SPACK_ROOT/bin/spack cd -h | ||||
|         python "$Env:SPACK_ROOT/bin/spack" cd -h | ||||
|     } | ||||
|     else { | ||||
|         $LOC = $(python $Env:SPACK_ROOT/bin/spack location $SpackSubCommandArgs) | ||||
|         $LOC = $(python "$Env:SPACK_ROOT/bin/spack" location $SpackSubCommandArgs) | ||||
|         if (($NULL -ne $LOC)){ | ||||
|             if ( Test-Path -Path $LOC){ | ||||
|                 Set-Location $LOC | ||||
| @@ -75,7 +75,7 @@ function Invoke-SpackCD { | ||||
|  | ||||
| function Invoke-SpackEnv { | ||||
|     if (Compare-CommonArgs $SpackSubCommandArgs[0]) { | ||||
|         python $Env:SPACK_ROOT/bin/spack env -h | ||||
|         python "$Env:SPACK_ROOT/bin/spack" env -h | ||||
|     } | ||||
|     else { | ||||
|         $SubCommandSubCommand = $SpackSubCommandArgs[0] | ||||
| @@ -83,46 +83,45 @@ function Invoke-SpackEnv { | ||||
|         switch ($SubCommandSubCommand) { | ||||
|             "activate" { | ||||
|                 if (Compare-CommonArgs $SubCommandSubCommandArgs) { | ||||
|                     python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs | ||||
|                     python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs | ||||
|                 } | ||||
|                 elseif ([bool]($SubCommandSubCommandArgs.Where({$_ -eq "--pwsh"}))) { | ||||
|                     python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs | ||||
|                     python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs | ||||
|                 } | ||||
|                 elseif (!$SubCommandSubCommandArgs) { | ||||
|                     python $Env:SPACK_ROOT/bin/spack env activate $SubCommandSubCommandArgs | ||||
|                     python "$Env:SPACK_ROOT/bin/spack" env activate $SubCommandSubCommandArgs | ||||
|                 } | ||||
|                 else { | ||||
|                     $SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params env activate "--pwsh" $SubCommandSubCommandArgs) | ||||
|                     $SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params env activate "--pwsh" $SubCommandSubCommandArgs) | ||||
|                     Set-SpackEnv $SpackEnv | ||||
|                 } | ||||
|             } | ||||
|             "deactivate" { | ||||
|                 if ([bool]($SubCommandSubCommandArgs.Where({$_ -eq "--pwsh"}))) { | ||||
|                     python $Env:SPACK_ROOT/bin/spack env deactivate $SubCommandSubCommandArgs | ||||
|                     python"$Env:SPACK_ROOT/bin/spack" env deactivate $SubCommandSubCommandArgs | ||||
|                 } | ||||
|                 elseif($SubCommandSubCommandArgs) { | ||||
|                     python $Env:SPACK_ROOT/bin/spack env deactivate -h | ||||
|                     python "$Env:SPACK_ROOT/bin/spack" env deactivate -h | ||||
|                 } | ||||
|                 else { | ||||
|                     $SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params env deactivate "--pwsh") | ||||
|                     $SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params env deactivate "--pwsh") | ||||
|                     Set-SpackEnv $SpackEnv | ||||
|                 } | ||||
|             } | ||||
|             default {python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs} | ||||
|             default {python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs} | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| function Invoke-SpackLoad { | ||||
|     if (Compare-CommonArgs $SpackSubCommandArgs) { | ||||
|         python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|         python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|     } | ||||
|     elseif ([bool]($SpackSubCommandArgs.Where({($_ -eq "--pwsh") -or ($_ -eq "--list")}))) { | ||||
|         python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|         python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|     } | ||||
|     else { | ||||
|         # python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs | ||||
|         $SpackEnv = $(python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs) | ||||
|         $SpackEnv = $(python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand "--pwsh" $SpackSubCommandArgs) | ||||
|         Set-SpackEnv $SpackEnv | ||||
|     } | ||||
| } | ||||
| @@ -131,7 +130,7 @@ function Invoke-SpackLoad { | ||||
| $SpackCMD_params, $SpackSubCommand, $SpackSubCommandArgs = Read-SpackArgs $args | ||||
|  | ||||
| if (Compare-CommonArgs $SpackCMD_params) { | ||||
|     python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|     python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs | ||||
|     exit $LASTEXITCODE | ||||
| } | ||||
|  | ||||
| @@ -143,5 +142,5 @@ switch($SpackSubCommand) | ||||
|     "env"    {Invoke-SpackEnv} | ||||
|     "load"   {Invoke-SpackLoad} | ||||
|     "unload" {Invoke-SpackLoad} | ||||
|     default  {python $Env:SPACK_ROOT/bin/spack $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs} | ||||
|     default  {python "$Env:SPACK_ROOT/bin/spack" $SpackCMD_params $SpackSubCommand $SpackSubCommandArgs} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 John W. Parent
					John W. Parent