private/Get-PhpBuildDetails.ps1
| function Get-PhpBuildDetails { <# .SYNOPSIS Get the PHP build Details. .PARAMETER Config Extension Configuration #> [OutputType()] param ( [Parameter(Mandatory = $true, Position=0, HelpMessage='Configuration for the extension')] [PSCustomObject] $Config ) begin { } process { if($Config.php_version -eq 'master') { $baseUrl = $fallbackBaseUrl = "https://github.com/shivammathur/php-builder-windows/releases/download/master" $PhpSemver = 'master' } else { $releaseState = if ($Config.php_version -match "[a-z]" -or $Config.php_version -eq '8.5') {"qa"} else {"releases"} $baseUrl = "https://downloads.php.net/~windows/$releaseState" $fallbackBaseUrl = "https://downloads.php.net/~windows/$releaseState/archives" $releases = Get-File -Url "$baseUrl/releases.json" | ConvertFrom-Json $phpSemver = $releases.$($Config.php_version).version if($null -eq $phpSemver) { $phpSemver = (Get-File -Url $fallbackBaseUrl).Links | Where-Object { $_.href -match "php-($($Config.php_version).[0-9]+).*" } | ForEach-Object { $matches[1] } | Sort-Object { [System.Version]$_ } -Descending | Select-Object -First 1 } } return [PSCustomObject]@{ phpSemver = $phpSemver baseUrl = $baseUrl fallbackBaseUrl = $fallbackBaseUrl } } end { } } |