Improve extension map

This commit is contained in:
Shivam Mathur 2022-01-17 16:13:16 +05:30
parent 449da348c0
commit 7f951c9333
No known key found for this signature in database
GPG Key ID: 3E13E4C8591ACC2A
3 changed files with 11 additions and 11 deletions

View File

@ -82,7 +82,7 @@ Function Add-Extension {
# Function to get a map of extensions and their dependent shared extensions. # Function to get a map of extensions and their dependent shared extensions.
Function Get-ExtensionMap { Function Get-ExtensionMap {
php -d'error_reporting=0' $dist\..\src\scripts\extensions\extension_map.php $env:TEMP\map.orig php -d'error_reporting=0' $dist\..\src\scripts\extensions\extension_map.php $env:TEMP\map$version.orig
} }
# Function to enable extension dependencies which are also extensions. # Function to enable extension dependencies which are also extensions.
@ -98,7 +98,7 @@ Function Enable-ExtensionDependencies {
return return
} }
Get-ExtensionMap Get-ExtensionMap
$entry = findstr /r "$extension`:.*" $env:TEMP\map.orig $entry = findstr /r "$extension`:.*" $env:TEMP\map$version.orig
if($entry) { if($entry) {
$entry.split(':')[1].trim().split(' ') | ForEach-Object { $entry.split(':')[1].trim().split(' ') | ForEach-Object {
if (-not(php -m | findstr -i $_)) { if (-not(php -m | findstr -i $_)) {
@ -118,7 +118,7 @@ Function Disable-DependentExtensions() {
[string] [string]
$extension $extension
) )
Select-String -Pattern ".*:.*\s$extension(\s|$)" $env:TEMP\map.orig | ForEach-Object { Select-String -Pattern ".*:.*\s$extension(\s|$)" $env:TEMP\map$version.orig | ForEach-Object {
$dependent = $_.Matches[0].Value.split(':')[0]; $dependent = $_.Matches[0].Value.split(':')[0];
Disable-ExtensionHelper -Extension $dependent -DisableDependents Disable-ExtensionHelper -Extension $dependent -DisableDependents
Add-Log $tick ":$extension" "Disabled $dependent as it depends on $extension" Add-Log $tick ":$extension" "Disabled $dependent as it depends on $extension"

View File

@ -49,7 +49,7 @@ enable_extension() {
# Function to get a map of extensions and their dependent shared extensions. # Function to get a map of extensions and their dependent shared extensions.
get_extension_map() { get_extension_map() {
php -d'error_reporting=0' "${dist:?}"/../src/scripts/extensions/extension_map.php /tmp/map.orig php -d'error_reporting=0' "${dist:?}"/../src/scripts/extensions/extension_map.php /tmp/map"$version".orig
} }
# Function to enable extension dependencies which are also extensions. # Function to enable extension dependencies which are also extensions.
@ -58,7 +58,7 @@ enable_extension_dependencies() {
prefix=$2 prefix=$2
[ -e /tmp/extdisabled/"$version"/"$extension" ] || return; [ -e /tmp/extdisabled/"$version"/"$extension" ] || return;
get_extension_map get_extension_map
for dependency in $(grep "$extension:" /tmp/map.orig | cut -d ':' -f 2 | tr '\n' ' '); do for dependency in $(grep "$extension:" /tmp/map"$version".orig | cut -d ':' -f 2 | tr '\n' ' '); do
enable_extension "$dependency" "$prefix" enable_extension "$dependency" "$prefix"
done done
rm /tmp/extdisabled/"$version"/"$extension" rm /tmp/extdisabled/"$version"/"$extension"
@ -67,7 +67,7 @@ enable_extension_dependencies() {
# Function to disable dependent extensions. # Function to disable dependent extensions.
disable_extension_dependents() { disable_extension_dependents() {
local extension=$1 local extension=$1
for dependent in $(grep -E ".*:.*\s$extension(\s|$)" /tmp/map.orig | cut -d ':' -f 1 | tr '\n' ' '); do for dependent in $(grep -E ".*:.*\s$extension(\s|$)" /tmp/map"$version".orig | cut -d ':' -f 1 | tr '\n' ' '); do
disable_extension_helper "$dependent" true disable_extension_helper "$dependent" true
add_log "${tick:?}" ":$extension" "Disabled $dependent as it depends on $extension" add_log "${tick:?}" ":$extension" "Disabled $dependent as it depends on $extension"
done done

View File

@ -31,7 +31,7 @@ class ExtensionMap {
/** /**
* Function to read the extension map. * Function to read the extension map.
*/ */
public function parseMap($path) { private function parseMap($path) {
if(file_exists($path)) { if(file_exists($path)) {
$handle = fopen($path, "r"); $handle = fopen($path, "r");
if ($handle) { if ($handle) {
@ -50,7 +50,7 @@ class ExtensionMap {
* @param string $extension * @param string $extension
* @return bool * @return bool
*/ */
public function checkSharedExtension($extension) { private function checkSharedExtension($extension) {
$extension_file = $this->extension_dir. DIRECTORY_SEPARATOR . $this->file_prefix . $extension . $this->file_extension; $extension_file = $this->extension_dir. DIRECTORY_SEPARATOR . $this->file_prefix . $extension . $this->file_extension;
return file_exists($extension_file); return file_exists($extension_file);
} }
@ -60,7 +60,7 @@ class ExtensionMap {
* *
* @return string[] * @return string[]
*/ */
public function getSharedExtensions() { private function getSharedExtensions() {
$files = scandir($this->extension_dir); $files = scandir($this->extension_dir);
$extensions = array_diff($files, array('.','..')); $extensions = array_diff($files, array('.','..'));
$filter_pattern = "/$this->file_extension|$this->file_prefix/"; $filter_pattern = "/$this->file_extension|$this->file_prefix/";
@ -76,7 +76,7 @@ class ExtensionMap {
* @param array $dependencies * @param array $dependencies
* @return array * @return array
*/ */
public function patchDependencies($extension, $dependencies) { private function patchDependencies($extension, $dependencies) {
// memcached 2.2.0 has no dependencies in reflection data. // memcached 2.2.0 has no dependencies in reflection data.
if($extension == 'memcached') { if($extension == 'memcached') {
$dependencies = array_unique(array_merge($dependencies, array('igbinary', 'json', 'msgpack'))); $dependencies = array_unique(array_merge($dependencies, array('igbinary', 'json', 'msgpack')));
@ -90,7 +90,7 @@ class ExtensionMap {
* @param string $extension * @param string $extension
* @throws ReflectionException * @throws ReflectionException
*/ */
public function addExtensionToMap($extension) { private function addExtensionToMap($extension) {
if($this->map && array_key_exists($extension, $this->map) && !empty($this->map[$extension])) { if($this->map && array_key_exists($extension, $this->map) && !empty($this->map[$extension])) {
return; return;
} }