From 9645cbdc256d6f6815ae2d9f2d647fedc14e1829 Mon Sep 17 00:00:00 2001 From: lxnay Date: Sun, 1 Mar 2009 19:43:27 +0000 Subject: [PATCH] Molecule: - allow to split spec file variables into multiple lines (paths_to_remove for example) git-svn-id: http://svn.sabayonlinux.org/projects/molecule/trunk@3096 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- molecule/settings.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/molecule/settings.py b/molecule/settings.py index f79ddf0..2282c26 100644 --- a/molecule/settings.py +++ b/molecule/settings.py @@ -217,17 +217,33 @@ class SpecParser: def parse(self): mydict = {} data = self.__generic_parser(self.filepath) + # compact lines properly + old_key = None for line in data: - try: - key, value = line.split(":",1) - except (ValueError, IndexError,): - continue - key = key.strip() + if ":" in line: + try: + key, value = line.split(":",1) + except ValueError: + continue + key = key.strip() + old_key = key + elif isinstance(old_key,basestring): + key = old_key + value = line.strip() + if not value: continue check_dict = self.parser_data_path.get(key) if not isinstance(check_dict,dict): continue value = check_dict['ve'](value) if not check_dict['cb'](value): continue - mydict[key] = value + if key in mydict: + if isinstance(value,basestring): + mydict[key] += " %s" % (value,) + elif isinstance(value,list): + mydict[key] += value + else: + continue + else: + mydict[key] = value self.validate_parse(mydict) return mydict.copy()