CentOS support.
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
"""Amavis related functions."""
|
||||
|
||||
import re
|
||||
|
||||
from .. import package
|
||||
from .. import utils
|
||||
|
||||
from . import base
|
||||
@@ -13,31 +12,44 @@ class Amavis(base.Installer):
|
||||
"""Amavis installer."""
|
||||
|
||||
appname = "amavis"
|
||||
packages = ["libdbi-perl", "amavisd-new"]
|
||||
packages = {
|
||||
"deb": ["libdbi-perl", "amavisd-new"],
|
||||
"rpm": ["amavisd-new"],
|
||||
}
|
||||
with_db = True
|
||||
config_files = ["05-node_id", "15-content_filter_mode", "50-user"]
|
||||
|
||||
@property
|
||||
def config_dir(self):
|
||||
"""Return appropriate config dir."""
|
||||
if package.backend.FORMAT == "rpm":
|
||||
return "/etc/amavisd"
|
||||
return "/etc/amavis"
|
||||
|
||||
def get_config_files(self):
|
||||
"""Return appropriate config files."""
|
||||
if package.backend.FORMAT == "deb":
|
||||
return [
|
||||
"conf.d/05-node_id", "conf.d/15-content_filter_mode",
|
||||
"conf.d/50-user"]
|
||||
return ["amavisd.conf"]
|
||||
|
||||
def get_packages(self):
|
||||
"""Additional packages."""
|
||||
db_driver = "pg" if self.db_driver == "pgsql" else self.db_driver
|
||||
return self.packages + ["libdbd-{}-perl".format(db_driver)]
|
||||
|
||||
@property
|
||||
def installed_version(self):
|
||||
"""Check the installed version."""
|
||||
name = "amavisd-new"
|
||||
code, output = utils.exec_cmd(
|
||||
"""dpkg -s {} | grep Version""".format(name),
|
||||
capture_output=True
|
||||
)
|
||||
match = re.match(r"Version: \d:(.+)-\d", output.decode())
|
||||
if match:
|
||||
return match.group(1)
|
||||
return None
|
||||
packages = super(Amavis, self).get_packages()
|
||||
if package.backend.FORMAT == "deb":
|
||||
db_driver = "pg" if self.db_driver == "pgsql" else self.db_driver
|
||||
return packages + ["libdbd-{}-perl".format(db_driver)]
|
||||
if self.db_driver == "pgsql":
|
||||
db_driver = "Pg"
|
||||
elif self.db_driver == "mysql":
|
||||
db_driver = "MySQL"
|
||||
else:
|
||||
raise NotImplementedError("DB driver not supported")
|
||||
return packages + ["perl-DBD-{}".format(db_driver)]
|
||||
|
||||
def get_sql_schema_path(self):
|
||||
"""Return schema path."""
|
||||
version = self.installed_version
|
||||
version = package.backend.get_installed_version("amavisd-new")
|
||||
if version is None:
|
||||
raise utils.FatalError("Amavis is not installed")
|
||||
return self.get_file_path(
|
||||
|
||||
Reference in New Issue
Block a user