Check if restore is defined before doing anything else.

fix #453
This commit is contained in:
Antoine Nguyen
2022-11-05 09:30:50 +01:00
parent 962cac3ad9
commit 61838dbe4d

View File

@@ -96,24 +96,27 @@ class Dovecot(base.Installer):
def post_run(self): def post_run(self):
"""Additional tasks.""" """Additional tasks."""
mail_dir = os.path.join(self.restore, "mails/") if self.restore is not None:
if self.restore is not None and len(os.listdir(mail_dir)) > 0: mail_dir = os.path.join(self.restore, "mails/")
utils.printcolor( if len(os.listdir(mail_dir)) > 0:
"Copying mail backup over dovecot directory.", utils.GREEN) utils.printcolor(
"Copying mail backup over dovecot directory.", utils.GREEN)
if os.path.exists(self.home_dir): if os.path.exists(self.home_dir):
shutil.rmtree(self.home_dir) shutil.rmtree(self.home_dir)
shutil.copytree(mail_dir, self.home_dir) shutil.copytree(mail_dir, self.home_dir)
# Resetting permission for vmail # Resetting permission for vmail
for dirpath, dirnames, filenames in os.walk(self.home_dir): for dirpath, dirnames, filenames in os.walk(self.home_dir):
shutil.chown(dirpath, self.user, self.user) shutil.chown(dirpath, self.user, self.user)
for filename in filenames: for filename in filenames:
shutil.chown(os.path.join(dirpath, filename), shutil.chown(os.path.join(dirpath, filename),
self.user, self.user) self.user, self.user)
elif self.restore is not None: else:
utils.printcolor( utils.printcolor(
"It seems that mails were not backed up, skipping mail restoration.", utils.MAGENTA) "It seems that mails were not backed up, skipping mail restoration.",
utils.MAGENTA
)
if self.dbengine == "postgres": if self.dbengine == "postgres":
dbname = self.config.get("modoboa", "dbname") dbname = self.config.get("modoboa", "dbname")