mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-10-31 07:16:22 +07:00 
			
		
		
		
	Scope binary tools installed using composer
This commit is contained in:
		| @ -331,6 +331,7 @@ add_composertool() { | ||||
|   tool=$1 | ||||
|   release=$2 | ||||
|   prefix=$3 | ||||
|   scope=$4 | ||||
|   if [[ "$tool" =~ prestissimo|composer-prefetcher ]]; then | ||||
|     composer_version=$(cat /tmp/composer_version) | ||||
|     if [ "$(echo "$composer_version" | cut -d'.' -f 1)" != "1" ]; then | ||||
| @ -340,8 +341,19 @@ add_composertool() { | ||||
|     fi | ||||
|   fi | ||||
|   ( | ||||
|     sudo rm -f "$composer_lock" >/dev/null 2>&1 || true | ||||
|     composer global require "$prefix$release" 2>&1 | tee /tmp/composer.log >/dev/null 2>&1 | ||||
|     if [ "$scope" = "global" ]; then | ||||
|       sudo rm -f "$composer_lock" >/dev/null 2>&1 || true | ||||
|       composer global require "$prefix$release" 2>&1 | tee /tmp/composer.log >/dev/null 2>&1 | ||||
|     else | ||||
|       scoped_dir="$composer_bin/_tools/$tool-$(echo -n "$release" | shasum -a 256 | cut -d ' ' -f 1)" | ||||
|       if ! [ -e "$scoped_dir" ]; then | ||||
|         mkdir -p "$scoped_dir" | ||||
|         composer require "$prefix$release" -d "$scoped_dir" 2>&1 | tee /tmp/composer.log >/dev/null 2>&1 | ||||
|         export PATH=$PATH:"$scoped_dir"/vendor/bin | ||||
|         echo "${tool}"_bin="$scoped_dir"/vendor/bin | sudo tee -a "$GITHUB_ENV" >/dev/null | ||||
|         echo "$scoped_dir"/vendor/bin >>"$GITHUB_PATH" | ||||
|       fi | ||||
|     fi | ||||
|     log=$(grep "$prefix$tool" /tmp/composer.log) && | ||||
|       tool_version=$(get_tool_version 'echo' "$log") && | ||||
|       add_log "$tick" "$tool" "Added $tool $tool_version" | ||||
|  | ||||
| @ -5,7 +5,7 @@ Function Add-ToolsHelper() { | ||||
|     $tool | ||||
|   ) | ||||
|   if($tool -eq "codeception") { | ||||
|     Copy-Item $composer_bin\codecept.bat -Destination $composer_bin\codeception.bat | ||||
|     Copy-Item $codeception_bin\codecept.bat -Destination $codeception_bin\codeception.bat | ||||
|   } elseif($tool -eq "composer") { | ||||
|     Edit-ComposerConfig $bin_dir\$tool | ||||
|   } elseif($tool -eq "cs2pr") { | ||||
| @ -22,7 +22,7 @@ Function Add-ToolsHelper() { | ||||
|     Add-ToProfile $current_profile "symfony" "New-Alias symfony $bin_dir\symfony-cli.exe" | ||||
|     Add-ToProfile $current_profile "symfony_cli" "New-Alias symfony-cli $bin_dir\symfony-cli.exe" | ||||
|   } elseif($tool -match "vapor-cli") { | ||||
|     Copy-Item $composer_bin\vapor.bat -Destination $composer_bin\vapor-cli.bat | ||||
|     Copy-Item $vapor_cli_bin\vapor.bat -Destination $vapor_cli_bin\vapor-cli.bat | ||||
|   } elseif($tool -eq "wp-cli") { | ||||
|     Copy-Item $bin_dir\wp-cli.bat -Destination $bin_dir\wp.bat | ||||
|   } | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| add_tools_helper() { | ||||
|   tool=$1 | ||||
|   if [ "$tool" = "codeception" ]; then | ||||
|     sudo ln -s "${composer_bin:?}"/codecept "${composer_bin:?}"/codeception | ||||
|     codeception_bin=$(grep codeception_bin "${GITHUB_ENV:?}" | cut -d '=' -f 2) | ||||
|     sudo ln -s "${codeception_bin:?}"/codecept "${codeception_bin:?}"/codeception | ||||
|   elif [ "$tool" = "composer" ]; then | ||||
|     configure_composer "${tool_path:?}" | ||||
|   elif [ "$tool" = "cs2pr" ]; then | ||||
|  | ||||
| @ -423,18 +423,36 @@ Function Add-Composertool() { | ||||
|     [ValidateNotNull()] | ||||
|     [ValidateLength(1, [int]::MaxValue)] | ||||
|     [string] | ||||
|     $prefix | ||||
|     $prefix, | ||||
|     [Parameter(Position = 3, Mandatory = $true)] | ||||
|     [ValidateNotNull()] | ||||
|     [ValidateLength(1, [int]::MaxValue)] | ||||
|     [string] | ||||
|     $scope | ||||
|   ) | ||||
|   if($tool -match "prestissimo|composer-prefetcher" -and $composer_version.split('.')[0] -ne "1") { | ||||
|     Write-Output "::warning:: Skipping $tool, as it does not support Composer $composer_version. Specify composer:v1 in tools to use $tool" | ||||
|     Add-Log $cross $tool "Skipped" | ||||
|     Return | ||||
|   } | ||||
|   if(Test-Path $composer_lock) { | ||||
|     Remove-Item -Path $composer_lock -Force | ||||
|   if($scope -eq 'global') { | ||||
|     if(Test-Path $composer_lock) { | ||||
|       Remove-Item -Path $composer_lock -Force | ||||
|     } | ||||
|     (composer global require $prefix$release 2>&1 | Tee-Object -FilePath $env:APPDATA\Composer\composer.log) >$null 2>&1 | ||||
|     $json = findstr $prefix$tool $env:APPDATA\Composer\composer.json | ||||
|   } else { | ||||
|     $release_stream = [System.IO.MemoryStream]::New([System.Text.Encoding]::ASCII.GetBytes($release)) | ||||
|     $scoped_tool_dir_suffix = (Get-FileHash -InputStream $release_stream -Algorithm sha256).Hash | ||||
|     $scoped_tool_dir = "$composer_bin\_tools\$tool-$scoped_tool_dir_suffix" | ||||
|     if(-not(Test-Path $scoped_tool_dir)) { | ||||
|       New-Item -ItemType Directory -Force -Path $scoped_tool_dir > $null 2>&1 | ||||
|       (composer global require $prefix$release -d $scoped_tool_dir.replace('\', '/') 2>&1 | Tee-Object -FilePath $env:APPDATA\Composer\composer.log) >$null 2>&1 | ||||
|       Add-Content $scoped_tool_dir\vendor\bin -Path $env:GITHUB_PATH -Encoding utf8 | ||||
|       New-Variable -Name ($tool.replace('-', '_') + '_bin') -Value $scoped_tool_dir\vendor\bin | ||||
|     } | ||||
|     $json = (Test-Path $scoped_tool_dir\composer.json) -and (findstr $prefix$tool $scoped_tool_dir\composer.json) | ||||
|   } | ||||
|   (composer global require $prefix$release 2>&1 | Tee-Object -FilePath $env:APPDATA\Composer\composer.log) >$null 2>&1 | ||||
|   $json = findstr $prefix$tool $env:APPDATA\Composer\composer.json | ||||
|   $log = findstr $prefix$tool $env:APPDATA\Composer\composer.log | ||||
|   if(Test-Path $composer_bin\composer) { | ||||
|     Copy-Item -Path "$bin_dir\composer" -Destination "$composer_bin\composer" -Force | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shivam Mathur
					Shivam Mathur