diff options
author | Martin Sivak <msivak@redhat.com> | 2008-04-08 14:05:52 +0200 |
---|---|---|
committer | Martin Sivak <msivak@redhat.com> | 2008-04-08 14:05:52 +0200 |
commit | c5f8ba7c9d6eae21a63d24241e07bf19b75cce99 (patch) | |
tree | d0e1a52f9b52e1b193ff2ac28f3bcab24ada46f6 /pyfirstaidkit | |
parent | cc4fd33a0493f461680d86bbfe802bb4d4f6b37b (diff) | |
download | firstaidkit-c5f8ba7c9d6eae21a63d24241e07bf19b75cce99.tar.gz firstaidkit-c5f8ba7c9d6eae21a63d24241e07bf19b75cce99.tar.xz firstaidkit-c5f8ba7c9d6eae21a63d24241e07bf19b75cce99.zip |
Cleanup the whole backup directory in the end and use weakref for singleton reference
Diffstat (limited to 'pyfirstaidkit')
-rw-r--r-- | pyfirstaidkit/utils/backup.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/pyfirstaidkit/utils/backup.py b/pyfirstaidkit/utils/backup.py index 31e2f07..b1f0c9e 100644 --- a/pyfirstaidkit/utils/backup.py +++ b/pyfirstaidkit/utils/backup.py @@ -22,6 +22,7 @@ from errors import NotImplemented import os import shutil import hashlib +import weakref class BackupException(Exception): pass @@ -142,10 +143,11 @@ class FileBackupStore(BackupStoreIterface): assert self.__class__._singleton==None - self.__class__._singleton = self self._path = path self._backups = {} os.makedirs(self._path) + self.__class__._singleton = weakref.proxy(self) + print "Backup system initialized" def getBackup(self, id): if not self._backups.has_key(id): @@ -159,8 +161,13 @@ class FileBackupStore(BackupStoreIterface): del self._backups[id] def __del__(self): - for id,backup in self._backups[id].iteritems(): + if self.__class__._singleton is None: + return + + for id,backup in self._backups.iteritems(): backup.cleanup() + os.rmdir(self._path) + print "Backup closed" @classmethod def get(cls, path): |