oum update checks
This commit is contained in:
parent
1f8554e8d1
commit
4e31b968a2
|
@ -1246,6 +1246,40 @@ class Client
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Compare version strings.
|
||||
*
|
||||
* @param string $version1 Version1.
|
||||
* @param string $version2 Version2.
|
||||
*
|
||||
* @return array
|
||||
* @throws \Exception On error.
|
||||
*/
|
||||
private function compareVersions(string $version1, string $version2):int
|
||||
{
|
||||
$v1_components = explode('.', $version1);
|
||||
$v2_components = explode('.', $version2);
|
||||
|
||||
$maxLength = max(count($v1_components), count($v2_components));
|
||||
|
||||
for ($i = 0; $i < $maxLength; $i++) {
|
||||
$v1_part = isset($v1_components[$i]) === true ? intval($v1_components[$i]) : 0;
|
||||
$v2_part = isset($v2_components[$i]) === true ? intval($v2_components[$i]) : 0;
|
||||
|
||||
if ($v1_part < $v2_part) {
|
||||
// $version1 is older.
|
||||
return -1;
|
||||
} else if ($v1_part > $v2_part) {
|
||||
// $version1 is newer.
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Versions are identical.
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update files.
|
||||
*
|
||||
|
@ -1284,6 +1318,30 @@ class Client
|
|||
throw new \Exception('Files are not readable');
|
||||
}
|
||||
|
||||
// External path to required versions file.
|
||||
$filepath = $this->tmpDir.'/downloads/'.$version.'/required_um_versions.php';
|
||||
|
||||
if (file_exists($filepath) === true) {
|
||||
include $filepath;
|
||||
|
||||
$curr_php_version = phpversion();
|
||||
$curr_mysql_version = db_get_value_sql('SELECT VERSION() AS version');
|
||||
|
||||
if (isset($php_version) === true
|
||||
&& is_string($php_version) === true
|
||||
&& $this->compareVersions($curr_php_version, $php_version) < 0
|
||||
) {
|
||||
throw new \Exception('PHP version >= '.$php_version.' is required');
|
||||
}
|
||||
|
||||
if (isset($mysql_version) === true
|
||||
&& is_string($mysql_version) === true
|
||||
&& $this->compareVersions($curr_mysql_version, $mysql_version) < 0
|
||||
) {
|
||||
throw new \Exception('MySQL version >= '.$mysql_version.' is required');
|
||||
}
|
||||
}
|
||||
|
||||
$created_directories = [];
|
||||
|
||||
while (($pf = readdir($pd)) !== false) {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
// Versions must be specified as a string in the following formats: 8, 8.0.30, ...
|
||||
$php_version = '8';
|
||||
$mysql_version = '8';
|
Loading…
Reference in New Issue