Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Jun 2018 01:32:18 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r334939 - head/stand/lua
Message-ID:  <201806110132.w5B1WI5d094546@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806110132.w5B1WI5d094546>