mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-09-08 22:04:10 +07:00
Merge pull request #193 from jaapio/feature/ext-blackfire
🎉 Add blackfire extenstion
This commit is contained in:
@ -22,6 +22,19 @@ export async function addExtensionDarwin(
|
||||
const prefix = await utils.getExtensionPrefix(ext_name);
|
||||
let install_command = '';
|
||||
switch (true) {
|
||||
case /^blackfire(-\d+\.\d+\.\d+)?$/.test(extension):
|
||||
script +=
|
||||
'\nsh ' +
|
||||
path.join(__dirname, '../src/scripts/ext/blackfire_darwin.sh') +
|
||||
' ' +
|
||||
version +
|
||||
' ' +
|
||||
(await utils.getMinorVersion(version)).replace('.', '');
|
||||
|
||||
if (ext_version) {
|
||||
script += ' ' + ext_version;
|
||||
}
|
||||
return;
|
||||
// match pre-release versions
|
||||
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
||||
script +=
|
||||
@ -103,6 +116,18 @@ export async function addExtensionWindows(
|
||||
const version_extension: string = version + extension;
|
||||
let matches: RegExpExecArray;
|
||||
switch (true) {
|
||||
// match blackfire...blackfire-1.31.0
|
||||
case /^blackfire(-\d+\.\d+\.\d+)?$/.test(extension):
|
||||
script +=
|
||||
'\n& ' +
|
||||
path.join(__dirname, '../src/scripts/ext/blackfire.ps1') +
|
||||
' ' +
|
||||
(await utils.getMinorVersion(version)).replace('.', '');
|
||||
|
||||
if (ext_version) {
|
||||
script += ' ' + ext_version;
|
||||
}
|
||||
return;
|
||||
// match pre-release versions
|
||||
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
||||
script += '\nAdd-Extension ' + ext_name + ' ' + ext_version;
|
||||
@ -160,6 +185,20 @@ export async function addExtensionLinux(
|
||||
const prefix = await utils.getExtensionPrefix(ext_name);
|
||||
let install_command = '';
|
||||
switch (true) {
|
||||
// match blackfire... blackfire-1.31.0
|
||||
case /^blackfire(-\d+\.\d+\.\d+)?$/.test(extension):
|
||||
script +=
|
||||
'\nsh ' +
|
||||
path.join(__dirname, '../src/scripts/ext/blackfire.sh') +
|
||||
' ' +
|
||||
version +
|
||||
' ' +
|
||||
(await utils.getMinorVersion(version)).replace('.', '');
|
||||
|
||||
if (ext_version) {
|
||||
script += ' ' + ext_version;
|
||||
}
|
||||
return;
|
||||
// match pre-release versions
|
||||
case /.*-(beta|alpha|devel|snapshot)/.test(version_extension):
|
||||
script +=
|
||||
|
27
src/scripts/ext/blackfire.ps1
Normal file
27
src/scripts/ext/blackfire.ps1
Normal file
@ -0,0 +1,27 @@
|
||||
Param (
|
||||
[Parameter(Position = 0, Mandatory = $true)]
|
||||
[ValidateNotNull()]
|
||||
[string]
|
||||
$phpversion,
|
||||
[Parameter(Position = 1, Mandatory = $true)]
|
||||
[ValidateNotNull()]
|
||||
[ValidateLength(1, [int]::MaxValue)]
|
||||
[string]
|
||||
$version = '1.31.0'
|
||||
)
|
||||
|
||||
Function Install-Blackfire() {
|
||||
$installed = Get-Php -Path $php_dir
|
||||
$nts = if (!$installed.ThreadSafe) { "_nts" } else { "" }
|
||||
Invoke-WebRequest -UseBasicParsing -Uri "https://packages.blackfire.io/binaries/blackfire-php/${version}/blackfire-php-windows_x64-php-${phpversion}${nts}.dll" -OutFile $ENV:RUNNER_TOOL_CACHE\blackfire.dll > $null 2>&1
|
||||
Copy-Item -Path "$ENV:RUNNER_TOOL_CACHE\blackfire.dll" -Destination "$ext_dir\blackfire.dll"
|
||||
Enable-PhpExtension -Extension blackfire -Path $php_dir
|
||||
printf "\033[%s;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "32" $tick "Blackfire" "Installed and enabled"
|
||||
}
|
||||
|
||||
$tick = ([char]8730)
|
||||
$php_dir = 'C:\tools\php'
|
||||
$ext_dir = $php_dir + '\ext'
|
||||
|
||||
Install-Blackfire
|
||||
|
23
src/scripts/ext/blackfire.sh
Normal file
23
src/scripts/ext/blackfire.sh
Normal file
@ -0,0 +1,23 @@
|
||||
add_log() {
|
||||
mark=$1
|
||||
subject=$2
|
||||
message=$3
|
||||
if [ "$mark" = "$tick" ]; then
|
||||
printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
|
||||
else
|
||||
printf "\033[31;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
|
||||
fi
|
||||
}
|
||||
|
||||
phpversion=$2
|
||||
blackfireVersion=${3:-1.31.0}
|
||||
ini_file="/etc/php/$1/cli/conf.d/50-blackfire.ini"
|
||||
tick="✓"
|
||||
cross="✗"
|
||||
|
||||
(curl -A "Github action" -o /tmp/blackfire.so -L -s https://packages.blackfire.io/binaries/blackfire-php/$blackfireVersion/blackfire-php-linux_amd64-php-$phpversion.so >/dev/null 2>&1 && \
|
||||
sudo mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so >/dev/null 2>&1 && \
|
||||
echo "extension=blackfire.so" | sudo tee -a "$ini_file" >/dev/null 2>&1 && \
|
||||
add_log "$tick" "blackfire" "Installed and enabled") || \
|
||||
add_log "$cross" "blackfire" "Could not install blackfire"
|
||||
|
23
src/scripts/ext/blackfire_darwin.sh
Normal file
23
src/scripts/ext/blackfire_darwin.sh
Normal file
@ -0,0 +1,23 @@
|
||||
# Function to log result of a operation
|
||||
add_log() {
|
||||
mark=$1
|
||||
subject=$2
|
||||
message=$3
|
||||
if [ "$mark" = "$tick" ]; then
|
||||
printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
|
||||
else
|
||||
printf "\033[31;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
|
||||
fi
|
||||
}
|
||||
|
||||
tick="✓"
|
||||
cross="✗"
|
||||
phpversion=$2
|
||||
blackfireVersion=${3:-1.31.0}
|
||||
ini_file=$(php -d "date.timezone=UTC" --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
||||
|
||||
(curl -A "Github action" -o /tmp/blackfire.so -L -s https://packages.blackfire.io/binaries/blackfire-php/$blackfireVersion/blackfire-php-darwin_amd64-php-$phpversion.so && \
|
||||
sudo mv /tmp/blackfire.so $(php -r "echo ini_get ('extension_dir');")/blackfire.so && \
|
||||
echo "extension=blackfire.so" >>"$ini_file" && \
|
||||
add_log "$tick" "blackfire" "Installed and enabled") || \
|
||||
add_log "$cross" "blackfire" "Could not install blackfire"
|
11
src/utils.ts
11
src/utils.ts
@ -261,3 +261,14 @@ export async function suppressOutput(os_version: string): Promise<string> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export async function getMinorVersion(version: string): Promise<string> {
|
||||
const regex = /^\d+\.\d+/;
|
||||
const match = version.match(regex);
|
||||
|
||||
if (match === null) {
|
||||
return version;
|
||||
}
|
||||
|
||||
return match[0];
|
||||
}
|
||||
|
Reference in New Issue
Block a user