profile backup - initial infrastructure
parent
9f7de204d4
commit
02b2d07b6d
@ -0,0 +1,40 @@
|
||||
import os.path
|
||||
from utils.util import get_profile_name_from_path, join_path
|
||||
|
||||
|
||||
class BackupService:
|
||||
|
||||
def __init__(self, settings, profile_manager):
|
||||
self._settings = settings
|
||||
self._profile_name = get_profile_name_from_path(profile_manager.get_path())
|
||||
|
||||
settings.settings_saved_event.add_callback(self._settings_saved)
|
||||
profile_manager.profile_saved_event.add_callback(self._profile_saved)
|
||||
|
||||
def _settings_saved(self, data):
|
||||
if not self._check_if_should_save_backup():
|
||||
return
|
||||
|
||||
file_path = join_path(self._get_backup_directory(), self._profile_name + '.json')
|
||||
|
||||
with open(file_path, 'wt') as fl:
|
||||
fl.write(data)
|
||||
|
||||
def _profile_saved(self, data):
|
||||
if not self._check_if_should_save_backup():
|
||||
return
|
||||
|
||||
file_path = join_path(self._get_backup_directory(), self._profile_name + '.tox')
|
||||
|
||||
with open(file_path, 'wb') as fl:
|
||||
fl.write(data)
|
||||
|
||||
def _check_if_should_save_backup(self):
|
||||
backup_directory = self._get_backup_directory()
|
||||
if backup_directory is None:
|
||||
return False
|
||||
|
||||
return os.path.exists(backup_directory) and os.path.isdir(backup_directory)
|
||||
|
||||
def _get_backup_directory(self):
|
||||
return self._settings['backup_directory']
|
Loading…
Reference in New Issue