svn commit: r334939 - head/stand/lua
Kyle Evans
kevans at FreeBSD.org
Mon Jun 11 01:32:19 UTC 2018
Author: kevans
Date: Mon Jun 11 01:32:18 2018
New Revision: 334939
URL: https://svnweb.freebsd.org/changeset/base/334939
Log:
lualoader: Allow brand-*.lua for adding new brands
dteske@, I believe, had originally pointed out that lualoader failed to
allow logo-*.lua for new logos to be added. When correcting this mistake, I
failed to do the same for brands.
Correct the sub-mistake: creating new brands is almost identical to creating
new logos, except one must use `drawer.addBrand` and 'graphic' is the only
valid key for a branddef at the moment.
While here, I've added `drawer.default_brand` to be set to name of brand to
be used (e.g. 'fbsd', project default).
Eventually this whole goolash will be documented.
Reported by: kmoore, iXsystems
Modified:
head/stand/lua/drawer.lua
Modified: head/stand/lua/drawer.lua
==============================================================================
--- head/stand/lua/drawer.lua Mon Jun 11 01:22:01 2018 (r334938)
+++ head/stand/lua/drawer.lua Mon Jun 11 01:32:18 2018 (r334939)
@@ -51,6 +51,22 @@ local function menuEntryName(drawing_menu, entry)
return entry.name
end
+local function getBranddef(brand)
+ if brand == nil then
+ return nil
+ end
+ -- Look it up
+ local branddef = drawer.branddefs[brand]
+
+ -- Try to pull it in
+ if branddef == nil then
+ try_include('brand-' .. brand)
+ branddef = drawer.branddefs[brand]
+ end
+
+ return branddef
+end
+
local function getLogodef(logo)
if logo == nil then
return nil
@@ -79,6 +95,8 @@ fbsd_brand = {
none = {""}
-- Module exports
+drawer.default_brand = 'fbsd'
+
drawer.menu_name_handlers = {
-- Menu name handlers should take the menu being drawn and entry being
-- drawn as parameters, and return the name of the item.
@@ -315,8 +333,13 @@ function drawer.drawbrand()
local y = tonumber(loader.getenv("loader_brand_y")) or
drawer.brand_position.y
- local graphic = drawer.branddefs[loader.getenv("loader_brand")] or
- fbsd_brand
+ local branddef = getBranddef(loader.getenv("loader_brand"))
+
+ if branddef == nil then
+ branddef = getBranddef(drawer.default_brand)
+ end
+
+ local graphic = branddef.graphic
x = x + drawer.shift.x
y = y + drawer.shift.y
More information about the svn-src-all
mailing list