Update ini files for all available SAPI

This commit is contained in:
Shivam Mathur 2020-12-02 05:50:56 +05:30
parent 5a15252e66
commit f0fb8731a5
No known key found for this signature in database
GPG Key ID: 3E13E4C8591ACC2A
7 changed files with 41 additions and 22 deletions

View File

@ -24,7 +24,7 @@ describe('Config tests', () => {
true true
); );
expect(linux).toContain( expect(linux).toContain(
'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata"' 'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata" | sudo tee -a "${ini_file[@]}"'
); );
linux = await config.addINIValues( linux = await config.addINIValues(
@ -40,7 +40,7 @@ describe('Config tests', () => {
'darwin' 'darwin'
); );
expect(darwin).toContain( expect(darwin).toContain(
'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata"' 'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata" | sudo tee -a "${ini_file[@]}"'
); );
darwin = await config.addINIValues( darwin = await config.addINIValues(

5
dist/index.js vendored
View File

@ -2461,7 +2461,10 @@ async function addINIValuesUnix(ini_values_csv) {
script += script +=
'\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')); '\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux'));
}); });
return 'echo "' + ini_values.join('\n') + '" >> $ini_file' + script; return ('echo "' +
ini_values.join('\n') +
'" | sudo tee -a "${ini_file[@]}" >/dev/null 2>&1' +
script);
} }
exports.addINIValuesUnix = addINIValuesUnix; exports.addINIValuesUnix = addINIValuesUnix;
/** /**

View File

@ -14,7 +14,12 @@ export async function addINIValuesUnix(
script += script +=
'\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux')); '\n' + (await utils.addLog('$tick', line, 'Added to php.ini', 'linux'));
}); });
return 'echo "' + ini_values.join('\n') + '" >> $ini_file' + script; return (
'echo "' +
ini_values.join('\n') +
'" | sudo tee -a "${ini_file[@]}" >/dev/null 2>&1' +
script
);
} }
/** /**

View File

@ -106,7 +106,7 @@ enable_extension() {
sudo phpenmod -v "$version" "$1" >/dev/null 2>&1 sudo phpenmod -v "$version" "$1" >/dev/null 2>&1
fi fi
if ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then if ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
echo "$2=${ext_dir:?}/$1.so" >>"${pecl_file:-$ini_file}" echo "$2=${ext_dir:?}/$1.so" >>"${pecl_file:-${ini_file[@]}}"
fi fi
} }
@ -114,7 +114,7 @@ enable_extension() {
configure_pecl() { configure_pecl() {
if ! [ -e /tmp/pecl_config ] && command -v pecl >/dev/null && command -v pear >/dev/null; then if ! [ -e /tmp/pecl_config ] && command -v pecl >/dev/null && command -v pear >/dev/null; then
for script in pear pecl; do for script in pear pecl; do
sudo "$script" config-set php_ini "${pecl_file:-$ini_file}" sudo "$script" config-set php_ini "${pecl_file:-${ini_file[@]}}"
sudo "$script" channel-update "$script".php.net sudo "$script" channel-update "$script".php.net
done done
echo '' | sudo tee /tmp/pecl_config >/dev/null 2>&1 echo '' | sudo tee /tmp/pecl_config >/dev/null 2>&1

View File

@ -5,7 +5,7 @@ add_blackfire() {
no_dot_version=${version/./} no_dot_version=${version/./}
platform=$(uname -s | tr '[:upper:]' '[:lower:]') platform=$(uname -s | tr '[:upper:]' '[:lower:]')
extension_version=$(echo "$extension" | cut -d '-' -f 2) extension_version=$(echo "$extension" | cut -d '-' -f 2)
blackfire_ini_file="${scan_dir:?}/50-blackfire.ini" blackfire_ini_file="${pecl_file:-${ini_file[@]}}"
if [ ! -e "${ext_dir:?}/blackfire.so" ]; then if [ ! -e "${ext_dir:?}/blackfire.so" ]; then
if [ "$extension_version" = "blackfire" ]; then if [ "$extension_version" = "blackfire" ]; then
extension_version=$(get -s -n "" https://blackfire.io/api/v1/releases | grep -Eo 'php":"([0-9]+.[0-9]+.[0-9]+)' | cut -d '"' -f 3) extension_version=$(get -s -n "" https://blackfire.io/api/v1/releases | grep -Eo 'php":"([0-9]+.[0-9]+.[0-9]+)' | cut -d '"' -f 3)

View File

@ -9,7 +9,6 @@ add_phalcon_helper() {
${apt_install:?} "php${version:?}-$extension" ${apt_install:?} "php${version:?}-$extension"
fi fi
else else
phalcon_ini_file=${ini_file:?}
sed -i '' '/extension.*psr/d' "${ini_file:?}" sed -i '' '/extension.*psr/d' "${ini_file:?}"
brew tap shivammathur/homebrew-phalcon brew tap shivammathur/homebrew-phalcon
brew install phalcon@"${version:?}"_"$extension_major_version" brew install phalcon@"${version:?}"_"$extension_major_version"
@ -58,7 +57,7 @@ add_phalcon() {
extension=$1 extension=$1
status='Enabled' status='Enabled'
os_name=$(uname -s) os_name=$(uname -s)
phalcon_ini_file="${scan_dir:?}/50-phalcon.ini" phalcon_ini_file="${pecl_file:-${ini_file[@]}}"
extension_major_version=${extension: -1} extension_major_version=${extension: -1}
if [ "$extension_major_version" = "4" ]; then if [ "$extension_major_version" = "4" ]; then
add_phalcon4 >/dev/null 2>&1 add_phalcon4 >/dev/null 2>&1

View File

@ -48,9 +48,9 @@ install_packages() {
# Function to delete extensions. # Function to delete extensions.
delete_extension() { delete_extension() {
extension=$1 extension=$1
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "${ini_file:?}" sudo sed -Ei "/=(.*\/)?\"?$extension/d" "${ini_file[@]}"
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "${pecl_file:?}" sudo sed -Ei "/=(.*\/)?\"?$extension/d" "$pecl_file"
sudo rm -rf "${scan_dir:?}"/*"$extension"* "${ext_dir:?}"/"$extension".so >/dev/null 2>&1 sudo rm -rf "$scan_dir"/*"$extension"* "$ext_dir"/"$extension".so >/dev/null 2>&1
if [ "${runner:?}" = "self-hosted" ]; then if [ "${runner:?}" = "self-hosted" ]; then
$apt_remove "php-$extension" "php$version-$extension" >/dev/null 2>&1 || true $apt_remove "php-$extension" "php$version-$extension" >/dev/null 2>&1 || true
fi fi
@ -79,14 +79,16 @@ add_pdo_extension() {
if check_extension "$pdo_ext"; then if check_extension "$pdo_ext"; then
add_log "${tick:?}" "$pdo_ext" "Enabled" add_log "${tick:?}" "$pdo_ext" "Enabled"
else else
ext=$1; ext_name=$1; ext=$1
ext_name=$1
sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1 sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1
if ! check_extension "pdo" 2>/dev/null; then echo "extension=pdo.so" >>"$ini_file"; fi if ! check_extension "pdo" 2>/dev/null; then echo "extension=pdo.so" | sudo tee -a "${ini_file[@]}"; fi
if [ "$ext" = "mysql" ]; then if [ "$ext" = "mysql" ]; then
enable_extension "mysqlnd" "extension" enable_extension "mysqlnd" "extension"
ext_name="mysqli" ext_name="mysqli"
elif [ "$ext" = "sqlite" ]; then elif [ "$ext" = "sqlite" ]; then
ext="sqlite3"; ext_name="sqlite3"; ext="sqlite3"
ext_name="sqlite3"
fi fi
add_extension "$ext_name" "extension" >/dev/null 2>&1 add_extension "$ext_name" "extension" >/dev/null 2>&1
add_extension "$pdo_ext" "extension" >/dev/null 2>&1 add_extension "$pdo_ext" "extension" >/dev/null 2>&1
@ -111,7 +113,7 @@ add_extension() {
fi fi
add_extension_log "$extension" "Installed and enabled" add_extension_log "$extension" "Installed and enabled"
fi fi
sudo chmod 777 "$ini_file" sudo chmod 777 "${ini_file[@]}"
} }
# Function to install a PECL version. # Function to install a PECL version.
@ -232,6 +234,15 @@ add_php() {
status="Installed" status="Installed"
} }
# Function to ini file for pear and link it to each SAPI.
link_pecl_file() {
echo '' | sudo tee "$pecl_file" >/dev/null 2>&1
for file in "${ini_file[@]}"; do
sapi_scan_dir="$(realpath -m "$(dirname "$file")")/conf.d"
[ "$sapi_scan_dir" != "$scan_dir" ] && ! [ -h "$sapi_scan_dir" ] && sudo ln -sf "$pecl_file" "$sapi_scan_dir/99-pecl.ini"
done
}
# Function to Setup PHP # Function to Setup PHP
setup_php() { setup_php() {
step_log "Setup PHP" step_log "Setup PHP"
@ -259,11 +270,12 @@ setup_php() {
semver=$(php_semver) semver=$(php_semver)
ext_dir=$(php -i | grep "extension_dir => /" | sed -e "s|.*=> s*||") ext_dir=$(php -i | grep "extension_dir => /" | sed -e "s|.*=> s*||")
scan_dir=$(php --ini | grep additional | sed -e "s|.*: s*||") scan_dir=$(php --ini | grep additional | sed -e "s|.*: s*||")
ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g") ini_dir=$(php --ini | grep "(php.ini)" | sed -e "s|.*: s*||")
pecl_file="$scan_dir"/99-pecl.ini pecl_file="$scan_dir"/99-pecl.ini
echo '' | sudo tee "$pecl_file" >/dev/null 2>&1 mapfile -t ini_file < <(sudo find "$ini_dir/.." -name "php.ini" -exec readlink -m {} +)
link_pecl_file
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1 sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
sudo chmod 777 "$ini_file" "$pecl_file" "${tool_path_dir:?}" sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/" sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/"
add_log "${tick:?}" "PHP" "$status PHP $semver" add_log "${tick:?}" "PHP" "$status PHP $semver"
} }