summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2008-04-08 14:05:52 +0200
committerMartin Sivak <msivak@redhat.com>2008-04-08 14:05:52 +0200
commitc5f8ba7c9d6eae21a63d24241e07bf19b75cce99 (patch)
treed0e1a52f9b52e1b193ff2ac28f3bcab24ada46f6 /pyfirstaidkit
parentcc4fd33a0493f461680d86bbfe802bb4d4f6b37b (diff)
downloadfirstaidkit-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.py11
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):