40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- encoding: utf-8 -*-
|
|
|
|
from pathlib import Path
|
|
from .configurator import Configurator
|
|
from .postfix import PostfixConfigurator
|
|
from .opendkim import OpenDkimConfigurator
|
|
from .cloudflare import CloudFlareConfigurator
|
|
|
|
|
|
def main() -> None:
|
|
inputfile: Path = Path('/srv/easymail.cfg')
|
|
if not inputfile.is_file():
|
|
raise FileNotFoundError(inputfile)
|
|
(cf_mail,
|
|
cf_token,
|
|
dmarc_mail,
|
|
vm_ip4,
|
|
vm_ip6,
|
|
*domains) = list(map(str.strip, inputfile.read_text().splitlines()))
|
|
sec4file = Path('/srv/secondary.4.cfg')
|
|
sec6file = Path('/srv/secondary.6.cfg')
|
|
sec4, sec6 = None, None
|
|
if sec4file.is_file() and sec6file.is_file():
|
|
sec4 = sec4file.read_text().strip().split(' ')[0].strip()
|
|
sec6 = sec6file.read_text().strip().split(' ')[0].strip()
|
|
Configurator.configure_many(
|
|
[
|
|
CloudFlareConfigurator,
|
|
OpenDkimConfigurator,
|
|
PostfixConfigurator,
|
|
], {
|
|
'domains': domains,
|
|
'cf_api': (cf_mail, cf_token,),
|
|
'dmarc_mail': dmarc_mail,
|
|
'vm_ips': (vm_ip4, vm_ip6),
|
|
'secondary': ('secondary', sec4, sec6),
|
|
}
|
|
)
|