2009/8/19 Vladimir 'phcoder' Serbinenko <phco...@gmail.com>: > On Wed, Aug 19, 2009 at 11:05 AM, Bean<bean12...@gmail.com> wrote: >> Hi, >> >> Currently, the menu system is a little unorganized and difficult to >> extend. My goal of the redesign are: >> >> Modular >> Split code into small modules, each module implement a specific >> function, modules uses predefined interface to call each other. > I'm ok with using predefined interfaces but splitting between .mods > may be not beneficial since normal.mod isn't size-critical. But I'm ok > with just compiling code-independent parts into the same module >> >> Extensible >> The core of the menu system is components, which can be extended >> easily. Components can be written in C or lua. >> >> Configurable >> The menu system can be configured easily by end users. The layout of >> screen can be configured with xml file, while the window styles is >> configured with css file. Interface are exported to C and lua so that >> you can configure the menu system dynamically. > I don't like the idea of xml or css. For xnu device tree I designed my > own format but then I saw that the whole idea of loading file for > configuring grub behaviour is fundamentally flawed. Environment > variables are already present, modifiable from shell and easy to use. > To have level or tree-like model you can use '.' as a name separator > it will make the system uniform with current FreeBSD booting.
XML/CSS is not the easiest format to work with but a bunch of variables which represent a tree is not nice either. However, apt has settings format that allows to specify variables both separately and as trees (using {} nested blocks). Something like that would probably make the life easier - you do not have to write the branch names again and again if you add several variables to the same branch but you can set a single variable deep inside the tree easily. Thanks Michal _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel