[lokisetup] New feature : boolean variables and expressions
Stéphane Peter
megastep at megastep.org
Fri Mar 31 17:23:37 EST 2006
On Mar 31, 2006, at 9:02 AM, Ludwig Nussel wrote:
> Stéphane Peter wrote:
>> [...]
>>> You could also just use xml to represent that expression. You don't
>>> need an additional parser then.
>>
>> Good point, although I tend to prefer simple strings to replace the
>> existing system in place, which was already a string with a command
>> to call. We would also have to worry about children XML nodes in many
>> places where we didn't expect much more than attributes before, which
>> would complicate things further and certainly introduce more bugs. ;)
>
> It would be the same. If I understand your description correctly you
> do <bool name="foo">+(|(redhat,suse),x86)<bool>. If you use xml
> instead it would be something like
> <bool name="foo">
> <and>
> <or>
> <distro>redhat</distro>
> <distro>suse</distro>
> <or>
> <arch>x86</arch>
> </and>
> <bool>
Well, actually you didn't understand my description correctly. ;) You
would have something like this:
<bool name="foo" script="command.sh"/> (the return value from the
command determines the bool value).
You can then use expressions referencing these bools in other current
tags, for example :
<files if="+(foo,Linux)">
file1
file2
...
</files>
So my point was that it would add a lot to the syntax of these
existing tags to do it in XML the way you suggest. Sure we could do
it, but I like simplicity.
> Not exactly the most compact way to define an expression but it fits
> better into the rest of the file.
We could do it, but I don't think it is really necessary, at least
not for now. The whole parser is only a hundred lines or so.
These changes help to write much cleaner installers. I have made a
few more changes over the past couple of days, and have greatly
simplified a very complex installer script I am using in a shipping
product. It also improves performance as it can be used to reduce the
number of external scripts being called to a minimum. A lot of the
previous conditional tags were calling commands every time they were
being parsed.
--
Stéphane Peter
megastep at megastep.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/lokisetup/attachments/20060331/e334d9ee/attachment.htm>
More information about the Lokisetup
mailing list