mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-22 11:51:07 +07:00
Fix to correctly use fallback URL for tools on Windows
This commit is contained in:
parent
d9cb143213
commit
948917a97b
@ -101,7 +101,7 @@ Function Add-Tool() {
|
||||
Param (
|
||||
[Parameter(Position = 0, Mandatory = $true)]
|
||||
[ValidateNotNull()]
|
||||
$url,
|
||||
$urls,
|
||||
[Parameter(Position = 1, Mandatory = $true)]
|
||||
[ValidateNotNull()]
|
||||
$tool,
|
||||
@ -112,23 +112,26 @@ Function Add-Tool() {
|
||||
if (Test-Path $bin_dir\$tool) {
|
||||
Copy-Item $bin_dir\$tool -Destination $bin_dir\$tool.old -Force
|
||||
}
|
||||
if($url.Count -gt 1) {
|
||||
$url = $url[0]
|
||||
}
|
||||
$tool_path = "$bin_dir\$tool"
|
||||
if (($url | Split-Path -Extension) -eq ".exe") {
|
||||
$tool_path = "$tool_path.exe"
|
||||
}
|
||||
try {
|
||||
Invoke-WebRequest -Uri $url -OutFile $tool_path
|
||||
} catch {
|
||||
if($url -match '.*github.com.*releases.*latest.*') {
|
||||
try {
|
||||
$url = $url.replace("releases/latest/download", "releases/download/" + ([regex]::match((Invoke-WebRequest -Uri ($url.split('/release')[0] + "/releases")).Content, "([0-9]+\.[0-9]+\.[0-9]+)/" + ($url.Substring($url.LastIndexOf("/") + 1))).Groups[0].Value).split('/')[0])
|
||||
Invoke-WebRequest -Uri $url -OutFile $tool_path
|
||||
} catch { }
|
||||
foreach ($url in $urls){
|
||||
if (($url | Split-Path -Extension) -eq ".exe") {
|
||||
$tool_path = "$tool_path.exe"
|
||||
}
|
||||
try {
|
||||
$status_code = (Invoke-WebRequest -Passthru -Uri $url -OutFile $tool_path).StatusCode
|
||||
} catch {
|
||||
if($url -match '.*github.com.*releases.*latest.*') {
|
||||
try {
|
||||
$url = $url.replace("releases/latest/download", "releases/download/" + ([regex]::match((Invoke-WebRequest -Uri ($url.split('/release')[0] + "/releases")).Content, "([0-9]+\.[0-9]+\.[0-9]+)/" + ($url.Substring($url.LastIndexOf("/") + 1))).Groups[0].Value).split('/')[0])
|
||||
$status_code = (Invoke-WebRequest -Passthru -Uri $url -OutFile $tool_path).StatusCode
|
||||
} catch { }
|
||||
}
|
||||
}
|
||||
if($status_code -eq 200 -and (Test-Path $tool_path)) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if (((Get-ChildItem -Path $bin_dir/* | Where-Object Name -Match "^$tool(.exe|.phar)*$").Count -gt 0)) {
|
||||
$bat_content = @()
|
||||
$bat_content += "@ECHO off"
|
||||
|
Loading…
Reference in New Issue
Block a user