On Fri, 13 Apr 2012 00:27:27 +0200, David Lutterkort <[email protected]>
wrote:
On Wed, 2012-03-28 at 13:27 +0200, Michal Filka wrote:
I don't understand one thing. Why is sysconfig.aug present when it
contains such bugs and can be replaced by shellvars.aug?
As Dominic said, Sysconfig came about as a simplified Shellvars lens
that would strip quotes out - not as successfully as one might hope, as
you've discovered.
I looked at it a while ago, and haven't figured out a proper fix yet,
either. There seem to be two options on how to tackle the problem of
parsing and stripping the quotes off a string:
1. Enhance the square lens: right now 'square RE LENS' is roughly
the same as 'key RE . LENS . del RE STR', with the constraint
that key and del operate on exactly the same string; we could
change it so that it would become 'square L1 L2 L3' equivalent
to 'L1 . L2 . L3' and the constraint that L1 and L3 operate on
identical strings - I haven't convinced myself that that will
address all the quoting issues
2. Add a 'quoted' lens primitive, roughly equivalent to the
tortuous Sysconfig.assign, but written in C. The question is: do
we need to worry about differences in quoted string syntax ? Can
we just implement Bash syntax ? Or will we need variants for
other string syntaxes ?
In fact, I'm not sure that removing quotes is meaningfully possible using
augeas.
Example:
VAR_1="a\"b\"c"
VAR_2='a\"b\"c'
then expected values are:
echo $VAR_1 ---> a"b"c
echo $VAR_2 ---> a\"b\"c
if augeas removes quoting and do not unescape the value, then there is no
chance to determine correct value in app (app will see a\"b\"c for above
example and cannot know if it should remove '\' or not)
So, it would be nice to have a "tool" which can transform qvq -> v on q's
value basis (e.g. for parsing C++ / XML like block comments or something
like this), but it won't help to sysconfig or generally to any file which
uses quoting and escaping together, because in such case you need bigger
hammer.
Michal Filka
_______________________________________________
augeas-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/augeas-devel