Hi Otavio, On Tue, Apr 23, 2013 at 7:44 PM, Otavio Salvador <ota...@ossystems.com.br> wrote: > On Tue, Apr 23, 2013 at 11:36 PM, Simon Glass <s...@chromium.org> wrote: >> Hi Otavio, >> >> On Tue, Apr 23, 2013 at 7:14 PM, Otavio Salvador >> <ota...@ossystems.com.br> wrote: >>> On Tue, Apr 23, 2013 at 9:29 PM, Simon Glass <s...@chromium.org> wrote: >>>> Hi Tom, >>>> >>>> On Tue, Apr 23, 2013 at 4:33 PM, Tom Rini <tr...@ti.com> wrote: >>>>> On Tue, Apr 23, 2013 at 02:32:00PM -0700, Simon Glass wrote: >>>>>> Hi Wolfgang, >>>>>> >>>>>> On Tue, Apr 16, 2013 at 10:44 PM, Wolfgang Denk <w...@denx.de> wrote: >>>>>> > Dear Simon Glass, >>>>>> > >>>>>> > In message <1366155414-6525-1-git-send-email-...@chromium.org> you >>>>>> > wrote: >>>>>> >> At present U-Boot environment variables, and thus scripts, are defined >>>>>> >> by CONFIG_EXTRA_ENV_SETTINGS. It is painful to add large amounts of >>>>>> >> text >>>>>> >> to this file and dealing with quoting and newlines is harder than it >>>>>> >> should be. It would be better if we could just type the script into a >>>>>> >> text file and have it included by U-Boot. >>>>>> >> >>>>>> >> Add a feature that brings in a .env file associated with the board >>>>>> >> config, if present. To use it, create a file in include/configs >>>>>> >> with the same name as you could board config file, except with a >>>>>> >> .env extension instead of a .h extension. The variables should be >>>>>> >> separated by \0. Comments are permitted, using # as the first >>>>>> >> character >>>>>> >> in a line. >>>>>> > >>>>>> > Please do not litter the include/configs/ directory with such stuff. >>>>>> > It's more than big enough already. Please put such files into the >>>>>> > respective board directories. >>>>>> >>>>>> OK. >>>>>> >>>>>> > >>>>>> > And if you do something like this, then please go the way to the end. >>>>>> > Forget about the \0 termination, make it a plain text file instead, >>>>>> > something that can be used with "env import -t" as well (or created >>>>>> > with "env export -t"). >>>>>> >>>>>> I'm not sure how to do this. Doesn't this mean that we cannot add >>>>>> multi-line scripts to the environment? That was part of my aim. But if >>>>>> I put a 0x0a in the script then it will think we are starting a new >>>>>> variable. >>>>> >>>>> The first thing that pops to mind is: >>>>> 1) embedded the text file into a linker-known spot >>>>> 2) Make part of the default env setup process be to env import -t that >>>>> location in memory. >>>> >>>> Well I have a working implementation - my concern was more about how >>>> to deal with newlines. I would like to be able to handle a script just >>>> written out over multiple lines in a text file. This is really nice >>>> because we can have proper indenting, comments, etc. As soon as we >>>> have to use 0x0a as the separator between each environment variable >>>> that is no longer possible. >>>> >>>> My current scheme requires the .env file to have \0 separating >>>> environment variables which is obviously not ideal. I am hoping we can >>>> find another way which is more textfile-friendly without losing the >>>> benefits. >>> >>> What about using \ as continuous line indicator and otherwise finish >>> the line, when parsing, wiht \0? >> >> Thanks for the suggestion. But that, along with the need for quotes, >> is one of the reasons I would like to provide a way to enter scripts >> naturally. >> >> Adding \ at the end of each line is error-prone and gets in the way. >> Python and C don't have this requirement - so why should U-Boot >> scripts? >> >> I wonder if we could define that 'xxx=' at the start of a line >> delineates a new variable? > > The problem with this kind of thing is we might end doing a full > parser and doing a semantic interpret of the text. It seems to be way > too complex ...
I can do the above with a simple sed script. Do you mean we might create a new type of parser? If so, then we could perhaps use a .scr extension or similar. My idea here is specifically for environment. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot