private/Add-ExtensionDependencies.ps1
Function Add-ExtensionDependencies { <# .SYNOPSIS Add a directory to PATH environment variable. .PARAMETER Config Configuration for the extension. #> [OutputType()] param( [Parameter(Mandatory = $true, Position=0, HelpMessage='Configuration for the extension')] [PSCustomObject] $Config ) begin { } process { if($Config.extension_libraries.Count -ne 0) { Add-StepLog "Adding libraries (third-party)" } $Config.extension_libraries | ForEach-Object { $library = $_.split('-')[0] try { switch ($_) { boost { Add-Boost } instantclient { Add-OciSdk -Config $Config } odbc_cli { Add-OdbcCli -Config $Config } Default { $url = "https://downloads.php.net/~windows/pecl/deps/$_" Get-File -Url $url -OutFile $_ Expand-Archive -Path $_ -DestinationPath "..\deps" -Force if(Test-Path "..\deps\LICENSE") { Rename-Item -Path "..\deps\LICENSE" -NewName "LICENSE.$library" } if(Test-Path "..\deps\lib\ossl-modules") { Move-Item -Path "..\deps\lib\ossl-modules\*" -Destination "..\deps\lib" Remove-Item -Path "..\deps\lib\ossl-modules" -Force -Recurse } } } Add-BuildLog tick "$library" "Added $($_ -replace '\.zip$')" } catch { Add-BuildLog cross "$library" "Failed to download $library" throw } } } end { } } |