I'm still having issues with the quotation rules for ReturnsZero, though
I did find a workaround. I am trying to embed a command like:
/bin/sh -c "/usr/bin/python -c \"import asdf\""
But I don't seem to be able to get the backslashes down to the shell. I
would expect this to work, escaping the backslashes, as it does in C:
ReturnsZero("/bin/sh -c \"${python} -c \\\"import asdf\\\"\"")
But it does not. With an echo on the front, it seems clear that the parser
is not being greedy enough, as the output I get is:
/usr/local/bin/python -c \
So it is throwing away everything after the underlined section:
ReturnsZero("/bin/sh -c \"${python} -c \\\"import asdf\\\"\"")
^^^^^^^^^^^^^^^^^^^
I did find that the following works:
ReturnsZero("/bin/sh -c \"${python} -c ${quote}import asdf${quote}\"")
So maybe there is a bug with escaping backslashes.
I guess I will add a paragraph to my best practices document saying that
one should avoid complicated escaping. It is hard to read, anyways.
Best,
Brendan
--
Senior System Administrator
The University of Chicago
Department of Computer Science
http://www.cs.uchicago.edu/people/brendan
http://praksys.blogspot.com/
_______________________________________________
Help-cfengine mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-cfengine