Merge pull request #424 from Spitfireap/restore
Backup & restore system
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
import glob
|
||||
import os
|
||||
import pwd
|
||||
import shutil
|
||||
|
||||
from .. import database
|
||||
from .. import package
|
||||
@@ -95,6 +96,25 @@ class Dovecot(base.Installer):
|
||||
|
||||
def post_run(self):
|
||||
"""Additional tasks."""
|
||||
mail_dir = os.path.join(self.restore, "mails/")
|
||||
if self.restore is not None and len(os.listdir(mail_dir)) > 0:
|
||||
utils.printcolor(
|
||||
"Copying mail backup over dovecot directory.", utils.GREEN)
|
||||
|
||||
if os.path.exists(self.home_dir):
|
||||
shutil.rmtree(self.home_dir)
|
||||
|
||||
shutil.copytree(mail_dir, self.home_dir)
|
||||
# Resetting permission for vmail
|
||||
for dirpath, dirnames, filenames in os.walk(self.home_dir):
|
||||
shutil.chown(dirpath, self.user, self.user)
|
||||
for filename in filenames:
|
||||
shutil.chown(os.path.join(dirpath, filename),
|
||||
self.user, self.user)
|
||||
elif self.restore is not None:
|
||||
utils.printcolor(
|
||||
"It seems that mails were not backed up, skipping mail restoration.", utils.MAGENTA)
|
||||
|
||||
if self.dbengine == "postgres":
|
||||
dbname = self.config.get("modoboa", "dbname")
|
||||
dbuser = self.config.get("modoboa", "dbuser")
|
||||
|
||||
Reference in New Issue
Block a user