summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit/configuration.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyfirstaidkit/configuration.py')
-rw-r--r--pyfirstaidkit/configuration.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/pyfirstaidkit/configuration.py b/pyfirstaidkit/configuration.py
index a4cedf1..fc534fb 100644
--- a/pyfirstaidkit/configuration.py
+++ b/pyfirstaidkit/configuration.py
@@ -20,6 +20,7 @@ import os
import sys
from cStringIO import StringIO
from shlex import shlex
+import zipfile
if os.environ.has_key("FIRST_AID_KIT_CONF"):
cfgfile = os.environ["FIRST_AID_KIT_CONF"].split(":")
@@ -95,6 +96,9 @@ class FAKConfigSection(object):
def unlock(self):
self.__dict__["__use_lock"] = False
+ def attach(self, file):
+ self.__dict__["__configuration"].attach(file)
+
def __getattr__(self, key):
if not self.__dict__["__configuration"]. \
has_section(self.__dict__["__section_name"]) and \
@@ -179,13 +183,27 @@ def getConfigBits(name, cfg = Config):
return c
class FAKInfo(ConfigParser.SafeConfigParser, FAKConfigMixIn):
+ def __init__(self, *args, **kwargs):
+ ConfigParser.SafeConfigParser.__init__(self, *args, **kwargs)
+ FAKConfigMixIn.__init__(self)
+ self._attachments = []
+
def write(self, fd=sys.stdout):
fd.write("--- Info section ---\n")
ConfigParser.SafeConfigParser.write(self, fd)
fd.write("--------------------\n")
- pass
+ def dump(self, filename):
+ fd = zipfile.ZipFile(filename, "w", zipfile.ZIP_DEFLATED)
+ temp = StringIO()
+ ConfigParser.SafeConfigParser.write(self, temp)
+ fd.writestr("results.ini", temp.getvalue())
+ for f in self._attachments:
+ fd.write(f)
+ fd.close()
+
+ def attach(self, file):
+ self._attachments.append(file)
Info = FAKInfo()
Info.lock()
-