diff --git a/images/win/post-generation/RustJunction.ps1 b/images/win/post-generation/RustJunction.ps1 deleted file mode 100644 index 86f3fc10..00000000 --- a/images/win/post-generation/RustJunction.ps1 +++ /dev/null @@ -1,12 +0,0 @@ -# Create Rust junction points to cargo and rustup folder -$cargoTarget = "$env:USERPROFILE\.cargo" -if (-not (Test-Path $cargoTarget)) -{ - New-Item -ItemType Junction -Path $cargoTarget -Target "C:\Rust\.cargo" -} - -$rustupTarget = "$env:USERPROFILE\.rustup" -if (-not (Test-Path $rustupTarget)) -{ - New-Item -ItemType Junction -Path $rustupTarget -Target "C:\Rust\.rustup" -} \ No newline at end of file diff --git a/images/win/scripts/Installers/Install-Rust.ps1 b/images/win/scripts/Installers/Install-Rust.ps1 index 0acf3279..73b5abb3 100644 --- a/images/win/scripts/Installers/Install-Rust.ps1 +++ b/images/win/scripts/Installers/Install-Rust.ps1 @@ -4,8 +4,8 @@ ################################################################################ # Rust Env -$env:RUSTUP_HOME = "C:\Rust\.rustup" -$env:CARGO_HOME = "C:\Rust\.cargo" +$env:RUSTUP_HOME = "C:\Users\Default\.rustup" +$env:CARGO_HOME = "C:\Users\Default\.cargo" # Download the latest rustup-init.exe for Windows x64 # See https://rustup.rs/# @@ -14,43 +14,16 @@ $rustupPath = Start-DownloadWithRetry -Url "https://win.rustup.rs/x86_64" -Name # Install Rust by running rustup-init.exe (disabling the confirmation prompt with -y) & $rustupPath -y --default-toolchain=stable --profile=minimal +# Add %USERPROFILE%\.cargo\bin to USER PATH +Add-DefaultPathItem "%USERPROFILE%\.cargo\bin" # Add Rust binaries to the path -Add-MachinePathItem "$env:CARGO_HOME\bin" -$env:Path = Get-MachinePath +$env:Path += ";$env:CARGO_HOME\bin" # Install common tools rustup component add rustfmt clippy cargo install --locked bindgen cbindgen cargo-audit cargo-outdated -# Run script at startup for all users -$cmdRustSymScript = @" -@echo off - -if exist $env:CARGO_HOME ( - if not exist %USERPROFILE%\.cargo ( - mklink /J %USERPROFILE%\.cargo $env:CARGO_HOME - ) -) - -if exist $env:RUSTUP_HOME ( - if not exist %USERPROFILE%\.rustup ( - mklink /J %USERPROFILE%\.rustup $env:RUSTUP_HOME - ) -) -"@ - -$cmdPath = "C:\Rust\rustsym.bat" -$cmdRustSymScript | Out-File -Encoding ascii -FilePath $cmdPath - # Cleanup Cargo crates cache Remove-Item "${env:CARGO_HOME}\registry\*" -Recurse -Force -# Update Run key to run a script at logon -Set-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "RUSTSYM" -Value $cmdPath - -# Create temporary symlinks to properly validate tools version -Set-Location -Path $env:UserProfile -$null = New-Item -Name ".rustup" -Value $env:RUSTUP_HOME -ItemType Junction -$null = New-Item -Name ".cargo" -Value $env:CARGO_HOME -ItemType Junction - -Invoke-PesterTests -TestFile "Rust" \ No newline at end of file +Invoke-PesterTests -TestFile "Rust" diff --git a/images/win/scripts/Tests/Rust.Tests.ps1 b/images/win/scripts/Tests/Rust.Tests.ps1 index 49e0c694..56ca20f8 100644 --- a/images/win/scripts/Tests/Rust.Tests.ps1 +++ b/images/win/scripts/Tests/Rust.Tests.ps1 @@ -1,10 +1,16 @@ Describe "Rust" { + BeforeAll { + $env:RUSTUP_HOME = "C:\Users\Default\.rustup" + $env:CARGO_HOME = "C:\Users\Default\.cargo" + $env:Path += ";$env:CARGO_HOME\bin" + } + $rustTools = @( - @{ToolName = "rustup"; binPath = "C:\Rust\.cargo\bin\rustup.exe"} - @{ToolName = "rustc"; binPath = "C:\Rust\.cargo\bin\rustc.exe"} - @{ToolName = "cargo"; binPath = "C:\Rust\.cargo\bin\cargo.exe"} - @{ToolName = "cargo audit"; binPath = "C:\Rust\.cargo\bin\cargo-audit.exe"} - @{ToolName = "cargo outdated"; binPath = "C:\Rust\.cargo\bin\cargo-outdated.exe"} + @{ToolName = "rustup"; binPath = "C:\Users\Default\.cargo\bin\rustup.exe"} + @{ToolName = "rustc"; binPath = "C:\Users\Default\.cargo\bin\rustc.exe"} + @{ToolName = "cargo"; binPath = "C:\Users\Default\.cargo\bin\cargo.exe"} + @{ToolName = "cargo audit"; binPath = "C:\Users\Default\.cargo\bin\cargo-audit.exe"} + @{ToolName = "cargo outdated"; binPath = "C:\Users\Default\.cargo\bin\cargo-outdated.exe"} ) $rustEnvNotExists = @( @@ -12,8 +18,8 @@ Describe "Rust" { @{envVar = "CARGO_HOME"} ) - It "C:\Rust\.rustup and C:\Rust\.cargo folders exist" { - "C:\Rust\.rustup", "C:\Rust\.cargo" | Should -Exist + It "C:\Users\Default\.rustup and C:\Users\Default\.cargo folders exist" { + "C:\Users\Default\.rustup", "C:\Users\Default\.cargo" | Should -Exist } It " environment variable does not exist" -TestCases $rustEnvNotExists { @@ -24,4 +30,4 @@ Describe "Rust" { "$ToolName --version" | Should -ReturnZeroExitCode $binPath | Should -Exist } -} \ No newline at end of file +}