From 7a498ad13ea1ca3dbd2e11471fa8266fd474f975 Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Sat, 28 Dec 2024 18:08:38 +0530 Subject: [PATCH] Fix support for zephir_parser --- src/scripts/extensions/zephir_parser.ps1 | 61 +----------------------- src/scripts/extensions/zephir_parser.sh | 10 ++-- 2 files changed, 8 insertions(+), 63 deletions(-) diff --git a/src/scripts/extensions/zephir_parser.ps1 b/src/scripts/extensions/zephir_parser.ps1 index 53ac22dae..ccdc86b5f 100644 --- a/src/scripts/extensions/zephir_parser.ps1 +++ b/src/scripts/extensions/zephir_parser.ps1 @@ -1,62 +1,3 @@ -# Function to get the url of the phalcon release asset. -Function Get-ZephirParserReleaseAssetUrl() { - Param ( - [Parameter(Position = 0, Mandatory = $true)] - [ValidateNotNull()] - [string] - $extension_version - ) - $repo = 'zephir-lang/php-zephir-parser' - $zp_releases = "$github/$repo/releases" - $nts = if (!$installed.ThreadSafe) { "nts" } else { "ts" } - try { - $match = (Invoke-RestMethod -Uri "https://api.github.com/repos/$repo/tags/$extension_version").assets | Select-String -Pattern "browser_download_url=.*(zephir_parser-php-${version}-$nts-windows.*.zip)" - } catch { - $match = (Get-File -Url "$zp_releases/expanded_assets/$extension_version").Links.href | Select-String -Pattern "(zephir_parser-php-${version}-$nts-windows.*.zip)" - } - if($NULL -ne $match) { - return "$zp_releases/download/$extension_version/$($match.Matches[0].Groups[1].Value)" - } - return false; -} - -# Function to get zephir parser version using GitHub releases. -Function Get-ZephirParserVersion() { - Param ( - [Parameter(Position = 0, Mandatory = $true)] - [ValidateNotNull()] - [string] - $extension - ) - $repo = 'zephir-lang/php-zephir-parser' - $zp_releases = "$github/$repo/releases" - if($extension -eq 'zephir_parser') { - return (Get-File -Url $zp_releases/latest).BaseResponse.RequestMessage.RequestUri.Segments[-1] - } else { - return 'v' + ($extension.split('-')[1] -replace 'v') - } -} - -# Function to add zephir parser using GitHub releases. -Function Add-ZephirParserFromGitHub() { - Param ( - [Parameter(Position = 0, Mandatory = $true)] - [ValidateNotNull()] - [string] - $extension - ) - $extension_version = Get-ZephirParserVersion $extension - $zip_url = Get-ZephirParserReleaseAssetUrl $extension_version - if($zip_url) { - Get-File -Url $zip_url -OutFile $ENV:RUNNER_TOOL_CACHE\zp.zip > $null 2>&1 - Expand-Archive -Path $ENV:RUNNER_TOOL_CACHE\zp.zip -DestinationPath $ENV:RUNNER_TOOL_CACHE\zp -Force > $null 2>&1 - Copy-Item -Path "$ENV:RUNNER_TOOL_CACHE\zp\php_zephir_parser.dll" -Destination "$ext_dir\php_zephir_parser.dll" - Enable-PhpExtension -Extension zephir_parser -Path $php_dir - } else { - throw "Unable to get zephir_parser release from the GitHub repo" - } -} - # Function to add zephir parser. Function Add-ZephirParser() { Param ( @@ -71,7 +12,7 @@ Function Add-ZephirParser() { Enable-PhpExtension -Extension zephir_parser -Path $php_dir } else { $status = 'Installed and enabled' - Add-ZephirParserFromGitHub $extension + Add-Extension zephir_parser $extension >$null 2>&1 } Add-ExtensionLog zephir_parser $status } catch { diff --git a/src/scripts/extensions/zephir_parser.sh b/src/scripts/extensions/zephir_parser.sh index f1c9b5d3a..af8887d1f 100644 --- a/src/scripts/extensions/zephir_parser.sh +++ b/src/scripts/extensions/zephir_parser.sh @@ -17,9 +17,13 @@ add_zephir_parser_helper() { [ "$(uname -s)" = "Linux" ] && os_suffix=ubuntu || os_suffix=macos build_name=$(get -s -n "" https://api.github.com/repos/"$repo"/releases/tags/"$ext_version" | grep -Eo "zephir_parser-php-${version:?}-$nts-$os_suffix-.*.zip" | head -n 1) [ -z "$build_name" ] && build_name=$(get -s -n "" "$zp_releases"/expanded_assets/"$ext_version" | grep -Eo "zephir_parser-php-${version:?}-$nts-$os_suffix-.*.zip" | head -n 1) - get -q -e "/tmp/zp.zip" "$zp_releases"/download/"$ext_version"/"$build_name" - sudo unzip -o "/tmp/zp.zip" -d "${ext_dir:?}" - enable_extension zephir_parser extension + if [ -n "$build_name" ]; then + get -q -e "/tmp/zp.zip" "$zp_releases"/download/"$ext_version"/"$build_name" + sudo unzip -o "/tmp/zp.zip" -d "${ext_dir:?}" + enable_extension zephir_parser extension + else + pecl_install zephir_parser + fi } # Add zephir_parser