summaryrefslogtreecommitdiffstats
path: root/pyfirstaidkit/configuration.py
diff options
context:
space:
mode:
authorMartin Sivak <msivak@redhat.com>2010-09-07 14:57:14 +0200
committerMartin Sivak <msivak@redhat.com>2010-09-07 14:57:14 +0200
commitb6a8761af9a3e8ae547cf12992192931b95f0861 (patch)
treeb91604ae00cdfbf953511902a8ff8c051568698e /pyfirstaidkit/configuration.py
parent1d4ec7084f6368c16a1f81f29c869012f2c271c8 (diff)
downloadfirstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.tar.gz
firstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.tar.xz
firstaidkit-b6a8761af9a3e8ae547cf12992192931b95f0861.zip
Changes to FAK Gui and Info object
- Gui allows to save results in info object - Info object allows attaching files and saving as .zip archive
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()
-