Refactorise package detection

This commit is contained in:
VirtuBox
2023-08-05 14:57:04 +02:00
parent 4b71b4e679
commit a93ec45ce4

View File

@@ -872,95 +872,43 @@ def site_package_check(self, stype):
wo_nginx.write('fastcgi_param \tSCRIPT_FILENAME '
'\t$request_filename;\n')
if ((pargs.php and pargs.php73) or (pargs.php and pargs.php74) or
(pargs.php and pargs.php72) or (pargs.php and pargs.php80) or
(pargs.php and pargs.php81) or (pargs.php and pargs.php82) or
(pargs.php72 and pargs.php73) or (pargs.php72 and pargs.php74) or
(pargs.php72 and pargs.php80) or (pargs.php72 and pargs.php81) or
(pargs.php72 and pargs.php82) or
(pargs.php73 and pargs.php74) or (pargs.php73 and pargs.php80) or
(pargs.php73 and pargs.php81) or (pargs.php73 and pargs.php82) or
(pargs.php74 and pargs.php80) or (pargs.php74 and pargs.php81) or
(pargs.php74 and pargs.php82) or
(pargs.php80 and pargs.php81) or (pargs.php80 and pargs.php82) or
(pargs.php81 and pargs.php82)):
Log.error(
self, "Error: two different PHP versions cannot be "
"combined within the same WordOps site")
php_versions = ['php72', 'php73', 'php74', 'php80', 'php81', 'php82']
selected_versions = [version for version in php_versions if getattr(pargs, version)]
if len(selected_versions) > 1:
Log.error(self, "Error: two different PHP versions cannot be "
"combined within the same WordOps site")
php_versions = {
'php72': '7.2',
'php73': '7.3',
'php74': '7.4',
'php80': '8.0',
'php81': '8.1',
'php82': '8.2',
}
if ((not pargs.php72) and (not pargs.php73) and (not pargs.php74) and
(not pargs.php80) and (not pargs.php81) and (not pargs.php82) and
stype in ['php', 'mysql', 'wp', 'wpsubdir',
'wpsubdomain']):
Log.debug(self, "Setting apt_packages variable for PHP")
php_check = 'php8.0-fpm'
php_to_setup = WOVar.wo_php80
if self.app.config.has_section('php'):
config_php_ver = self.app.config.get(
'php', 'version')
if config_php_ver == '7.2':
php_check = 'php7.2-fpm'
php_to_setup = WOVar.wo_php72
elif config_php_ver == '7.3':
php_check = 'php7.3-fpm'
php_to_setup = WOVar.wo_php73
elif config_php_ver == '7.4':
php_check = 'php7.4-fpm'
php_to_setup = WOVar.wo_php74
elif config_php_ver == '8.0':
php_check = 'php8.0-fpm'
php_to_setup = WOVar.wo_php80
elif config_php_ver == '8.1':
php_check = 'php8.1-fpm'
php_to_setup = WOVar.wo_php81
elif config_php_ver == '8.2':
php_check = 'php8.2-fpm'
php_to_setup = WOVar.wo_php82
else:
php_check = 'php8.1-fpm'
php_to_setup = WOVar.wo_php81
else:
php_check = 'php8.1-fpm'
php_to_setup = WOVar.wo_php81
if not (WOAptGet.is_installed(self, php_check)):
apt_packages = apt_packages + php_to_setup + WOVar.wo_php_extra
for version_key, version_number in php_versions.items():
if (self.app.config.has_section('php') and
self.app.config.get('php', 'version') == version_number):
Log.debug(
self,
f"Setting apt_packages variable for PHP {version_number}")
if not WOAptGet.is_installed(self, f'php{version_number}-fpm'):
apt_packages += getattr(
WOVar, f'wo_{version_key}') + WOVar.wo_php_extra
if pargs.php72 and stype in ['php72', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 7.2")
if not WOAptGet.is_installed(self, 'php7.2-fpm'):
apt_packages = apt_packages + WOVar.wo_php72 + WOVar.wo_php_extra
if pargs.php73 and stype in ['php73', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 7.3")
if not WOAptGet.is_installed(self, 'php7.3-fpm'):
apt_packages = apt_packages + WOVar.wo_php73 + WOVar.wo_php_extra
if pargs.php74 and stype in ['php74', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 7.4")
if not WOAptGet.is_installed(self, 'php7.4-fpm'):
apt_packages = apt_packages + WOVar.wo_php74 + WOVar.wo_php_extra
if pargs.php80 and stype in ['php80', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 8.0")
if not WOAptGet.is_installed(self, 'php8.0-fpm'):
apt_packages = apt_packages + WOVar.wo_php80 + WOVar.wo_php_extra
if pargs.php81 and stype in ['php81', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 8.1")
if not WOAptGet.is_installed(self, 'php8.1-fpm'):
apt_packages = apt_packages + WOVar.wo_php81 + WOVar.wo_php_extra
if pargs.php82 and stype in ['php82', 'mysql', 'wp',
'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for PHP 8.2")
if not WOAptGet.is_installed(self, 'php8.2-fpm'):
apt_packages = apt_packages + WOVar.wo_php82 + WOVar.wo_php_extra
for version_key, version_number in php_versions.items():
if getattr(self.pargs, version_key) and stype in [version_key, 'mysql', 'wp', 'wpsubdir', 'wpsubdomain']:
Log.debug(self, f"Setting apt_packages variable for PHP {version_number}")
if not WOAptGet.is_installed(self, f'php{version_number}-fpm'):
apt_packages += getattr(WOVar, f'wo_{version_key}') + WOVar.wo_php_extra
if stype in ['mysql', 'wp', 'wpsubdir', 'wpsubdomain']:
Log.debug(self, "Setting apt_packages variable for MySQL")