Skip to content
Snippets Groups Projects
retrieve_recovery_files.py 1.46 KiB
Newer Older
from mantid.kernel import ConfigService
import os
import shutil
import hashlib
import datetime

class RetrieveRecoveryFiles(object):
    def __init__(self):
        pass

    @staticmethod
    def _get_properties_directory():
        return ConfigService.getUserPropertiesDir()

    @staticmethod
    def get_recovery_files_path():
        recovery_files_path = ''
        properties_directory = RetrieveRecoveryFiles._get_properties_directory()
        if 'recovery' not in os.listdir(properties_directory):
            return recovery_files_path

        recovery_dir_contents = os.listdir(properties_directory + 'recovery')
        if not recovery_dir_contents:
            return recovery_files_path

        recovery_files_path = properties_directory + 'recovery'
        return recovery_files_path

    @staticmethod
    def zip_recovery_directory():
        path = RetrieveRecoveryFiles.get_recovery_files_path()
        directory = RetrieveRecoveryFiles._get_properties_directory()
        hash_value = hashlib.md5(str.encode(directory + str(datetime.datetime.now())))
        zip_file = os.path.join(directory, hash_value.hexdigest())
        if path:
            shutil.make_archive(zip_file, 'zip', path)
            return zip_file, hash_value.hexdigest()
        return ''

    @staticmethod
    def remove_recovery_file(file):
        directory = RetrieveRecoveryFiles._get_properties_directory()
        zip_file = os.path.join(directory, file)
        os.remove(zip_file + '.zip')