Skip to content

Commit

Permalink
Add support to allow composer plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
shivammathur committed Jul 5, 2022
1 parent 050cb80 commit a863ab6
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
11 changes: 9 additions & 2 deletions src/scripts/tools/add_tools.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,10 @@ Function Add-ComposertoolHelper() {
Remove-Item -Path $composer_lock -Force
}
composer global require $prefix$release $composer_args >$null 2>&1
return composer global show $prefix$tool 2>&1 | findstr '^versions'
composer global show $prefix$tool 2>&1 | Out-File -FilePath $env:TEMP\composer.log
if(findstr '^type *: *composer-plugin' $env:TEMP\composer.log) {
composer global config --no-plugins allow-plugins."$prefix$release" true >$null 2>&1
}
} else {
$release_stream = [System.IO.MemoryStream]::New([System.Text.Encoding]::ASCII.GetBytes($release))
$scoped_dir_suffix = (Get-FileHash -InputStream $release_stream -Algorithm sha256).Hash
Expand All @@ -195,8 +198,12 @@ Function Add-ComposertoolHelper() {
}
[System.Environment]::SetEnvironmentVariable(($tool.replace('-', '_') + '_bin'), "$scoped_dir\vendor\bin")
Add-Path $scoped_dir\vendor\bin
return composer show $prefix$tool -d $unix_scoped_dir 2>&1 | findstr '^versions'
composer show $prefix$tool -d $unix_scoped_dir 2>&1 | Out-File -FilePath $env:TEMP\composer.log
if(findstr '^type *: *composer-plugin' $env:TEMP\composer.log) {
composer config -d $unix_scoped_dir --no-plugins allow-plugins."$prefix$release" true >$null 2>&1
}
}
return findstr '^versions' $env:TEMP\composer.log
}

# Function to setup a tool using composer.
Expand Down
12 changes: 10 additions & 2 deletions src/scripts/tools/add_tools.sh
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,22 @@ add_composertool_helper() {
if [ "$scope" = "global" ]; then
sudo rm -f "$composer_lock" >/dev/null 2>&1 || true
composer global require "$prefix$release" "$composer_args" >/dev/null 2>&1
composer global show "$prefix$tool" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
composer global show "$prefix$tool" 2>&1 | sudo tee /tmp/composer_show.log >/dev/null 2>&1
grep -E ^versions /tmp/composer_show.log | sudo tee /tmp/composer.log >/dev/null 2>&1
if grep -qE '^type *: *composer-plugin' /tmp/composer_show.log; then
composer global config --no-plugins allow-plugins."$prefix$release" true >/dev/null 2>&1
fi
else
scoped_dir="$composer_bin/_tools/$tool-$(echo -n "$release" | shasum -a 256 | cut -d ' ' -f 1)"
if ! [ -d "$scoped_dir" ]; then
mkdir -p "$scoped_dir"
echo '{}' | tee "$scoped_dir/composer.json" >/dev/null
composer require "$prefix$release" -d "$scoped_dir" "$composer_args" >/dev/null 2>&1
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | sudo tee /tmp/composer_show.log >/dev/null 2>&1
grep -E ^versions /tmp/composer_show.log | sudo tee /tmp/composer.log >/dev/null 2>&1
if grep -qE '^type *: *composer-plugin' /tmp/composer_show.log; then
composer config -d "$scoped_dir" --no-plugins allow-plugins."$prefix$release" true >/dev/null 2>&1
fi
fi
add_path "$scoped_dir"/vendor/bin
fi
Expand Down

0 comments on commit a863ab6

Please sign in to comment.