diff --git a/scripts/install-powershell.ps1 b/scripts/install-powershell.ps1 index 4847fa38..37f689b6 100755 --- a/scripts/install-powershell.ps1 +++ b/scripts/install-powershell.ps1 @@ -22,6 +22,7 @@ Invoke this script directly from GitHub Invoke-Expression "& { $(Invoke-RestMethod 'https://aka.ms/install-powershell.ps1') } -daily" #> + [CmdletBinding(DefaultParameterSetName = "Daily")] param( [Parameter(ParameterSetName = "Daily")] @@ -116,7 +117,7 @@ function Remove-Destination([string] $Destination) { if ($DoNotOverwrite) { throw "Destination folder '$Destination' already exist. Use a different path or omit '-DoNotOverwrite' to overwrite." } - Write-Host "⏳ (2/2) Removing old installation at: $Destination" + Write-Host "⏳ (5/5) Removing old installation at: $Destination" if (Test-Path -Path "$Destination.old") { Remove-Item "$Destination.old" -Recurse -Force } @@ -246,20 +247,12 @@ function Add-PathTToSettings { } if ($IsLinux) { - $Name = $PSVersionTable.OS - if ($Name -like "*-generic *") { - if ([System.Environment]::Is64BitOperatingSystem) { - $architecture = "x64" - } else { - $architecture = "x86" - } - } elseif ($Name -like "*-raspi *") { - if ([System.Environment]::Is64BitOperatingSystem) { - $architecture = "arm64" - } else { - $architecture = "arm32" - } - } + $platform = (uname -i) + if ($platform -eq "x86_64") { $architecture = "x64" } + elseif ($platform -eq "x86_32") { $architecture = "x86" } + elseif ($platform -eq "aarch64") { $architecture = "arm64" } + elseif ($platform -eq "aarch32") { $architecture = "arm32" } + else { Write-Host "Unknown platform $platform" } } elseif (-not $IsWinEnv) { $architecture = "x64" } elseif ($(Get-ComputerInfo -Property OsArchitecture).OsArchitecture -eq "ARM 64-bit Processor") { @@ -357,12 +350,14 @@ try { tar zxf $packagePath -C $contentPath } } else { + Write-Host "⏳ (1/5) Loading metadata from https://raw.githubusercontent.com ..." $metadata = Invoke-RestMethod https://raw.githubusercontent.com/PowerShell/PowerShell/master/tools/metadata.json if ($Preview) { $release = $metadata.PreviewReleaseTag -replace '^v' } else { $release = $metadata.ReleaseTag -replace '^v' } + Write-Host "⏳ (2/5) Found latest release $release for $architecture..." if ($IsWinEnv) { if ($UseMSI) { @@ -379,9 +374,10 @@ try { } elseif ($IsMacOSEnv) { $packageName = "powershell-${release}-osx-${architecture}.tar.gz" } + Write-Host "⏳ (3/5) Package name to download is $packageName..." $downloadURL = "https://github.com/PowerShell/PowerShell/releases/download/v${release}/${packageName}" - Write-Host "⏳ (1/2) Loading $downloadURL" + Write-Host "⏳ (4/5) Loading $downloadURL" $packagePath = Join-Path -Path $tempDir -ChildPath $packageName if (!$PSVersionTable.ContainsKey('PSEdition') -or $PSVersionTable.PSEdition -eq "Desktop") {