Happy to document it. Where/how would you like it, on the wiki or
anywhere else also?
On 12/30/2011 06:03 AM, Lucas Meneghel Rodrigues wrote:
> On 12/16/2011 07:47 PM, Chris Evich wrote:
>> Hrrrmmmm, git send-email didn't like my examples :S
>>
>> image_name = f16-64
>> cdrom_unattended = images/${image_name}/ks.iso
>> kernel = images/${image_name}/pxeboot/vmlinuz
>> etc...
>>
>> I did some cursory testing and the patch seems basically functional.
>> I'm not sure if there are hidden gotchas or how well it works across
>> (already parsed) variants.
>>
>> Either way, I'm curious for feedback if others think this would be a
>> handy feature.
>
> I was looking into this, fine by me, as soon as I finish checking the
> config file unification patches, I'll commit it. Would you document the
> new feature?
>
> Cheers,
>
> Lucas
>
>> On 12/16/2011 04:31 PM, Chris Evich wrote:
>>> Allows use of $key or ${key} substitutions of backreferenced values.
>>> This makes it convenient for using existing keys as the basis for
>>> subsequent ones. For example:
>>>
>>> Signed-off-by: Chris Evich<[email protected]>
>>> ---
>>> client/common_lib/cartesian_config.py | 20 +++++++++++++-------
>>> 1 files changed, 13 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/client/common_lib/cartesian_config.py
>>> b/client/common_lib/cartesian_config.py
>>> index 62bc925..ccef74f 100755
>>> --- a/client/common_lib/cartesian_config.py
>>> +++ b/client/common_lib/cartesian_config.py
>>> @@ -28,7 +28,7 @@ Cartesian configuration format file parser.
>>> @copyright: Red Hat 2008-2011
>>> """
>>>
>>> -import re, os, optparse, collections
>>> +import re, os, optparse, collections, string
>>>
>>> class ParserError:
>>> def __init__(self, msg, line=None, filename=None, linenum=None):
>>> @@ -535,38 +535,44 @@ _reserved_keys = set(("name", "shortname", "dep"))
>>>
>>> def _op_set(d, key, value):
>>> if key not in _reserved_keys:
>>> - d[key] = value
>>> + st = string.Template(value)
>>> + d[key] = st.safe_substitute(d)
>>>
>>>
>>> def _op_append(d, key, value):
>>> if key not in _reserved_keys:
>>> - d[key] = d.get(key, "") + value
>>> + st = string.Template(value)
>>> + d[key] = d.get(key, "") + st.safe_substitute(d)
>>>
>>>
>>> def _op_prepend(d, key, value):
>>> if key not in _reserved_keys:
>>> - d[key] = value + d.get(key, "")
>>> + st = string.Template(value)
>>> + d[key] = st.safe_substitute(d) + d.get(key, "")
>>>
>>>
>>> def _op_regex_set(d, exp, value):
>>> exp = re.compile("%s$" % exp)
>>> + st = string.Template(value)
>>> for key in d:
>>> if key not in _reserved_keys and exp.match(key):
>>> - d[key] = value
>>> + d[key] = st.safe_substitute(d)
>>>
>>>
>>> def _op_regex_append(d, exp, value):
>>> exp = re.compile("%s$" % exp)
>>> + st = string.Template(value)
>>> for key in d:
>>> if key not in _reserved_keys and exp.match(key):
>>> - d[key] += value
>>> + d[key] += st.safe_substitute(d)
>>>
>>>
>>> def _op_regex_prepend(d, exp, value):
>>> exp = re.compile("%s$" % exp)
>>> + st = string.Template(value)
>>> for key in d:
>>> if key not in _reserved_keys and exp.match(key):
>>> - d[key] = value + d[key]
>>> + d[key] = st.safe_substitute(d) + d[key]
>>>
>>>
>>> def _op_regex_del(d, empty, exp):
>>
>>
>
--
Chris Evich, RHCA, RHCE, RHCDS, RHCSS
Quality Assurance Engineer
e-mail: cevich + `@' + redhat.com o: 1-888-RED-HAT1 x44214
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest