Files
modoboa-installer/modoboa_installer/scripts/__init__.py
2022-09-15 11:32:57 +02:00

55 lines
1.5 KiB
Python

"""Installation scripts management."""
import importlib
import sys
from .. import utils
def install(appname, config, upgrade, restore):
"""Install an application."""
if (config.has_option(appname, "enabled") and
not config.getboolean(appname, "enabled")):
return
utils.printcolor("Installing {}".format(appname), utils.MAGENTA)
try:
script = importlib.import_module(
"modoboa_installer.scripts.{}".format(appname))
except ImportError:
print("Unknown application {}".format(appname))
sys.exit(1)
try:
getattr(script, appname.capitalize())(config, upgrade, restore).run()
except utils.FatalError as inst:
utils.printcolor(u"{}".format(inst), utils.RED)
sys.exit(1)
def backup(config, bashArg, nomail):
"""Backup instance"""
try:
script = importlib.import_module(
"modoboa_installer.scripts.backup")
except ImportError:
print("Error importing backup")
try:
getattr(script, "Backup")(config, bashArg, nomail).run()
except utils.FatalError as inst:
utils.printcolor(u"{}".format(inst), utils.RED)
sys.exit(1)
def restore(restore):
"""Restore instance"""
try:
script = importlib.import_module(
"modoboa_installer.scripts.restore")
except ImportError:
print("Error importing restore")
try:
getattr(script, "Restore")(restore)
except utils.FatalError as inst:
utils.printcolor(u"{}".format(inst), utils.RED)
sys.exit(1)