Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Nov 2020 02:11:04 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r367666 - in stable/12: . stand/lua
Message-ID:  <202011140211.0AE2B4fv002385@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Sat Nov 14 02:11:04 2020
New Revision: 367666
URL: https://svnweb.freebsd.org/changeset/base/367666

Log:
  MFC r366435: lualoader: improve the design of the brand-/logo- mechanism
  
  In the previous world order, any brand/logo was forced to pull in the
  drawer and call drawer.add{Brand,Logo} with the name their brand/logo is
  taking and a table describing it.
  
  In the new world order, these files just need to return a table that maps
  out graphics types to a table of the exact same format as what was
  previously being passed back into the drawer. The appeal here is not needing
  to grab a reference back to the drawer module and having a cleaner
  data-driven looking format for these. The format has been renamed to 'gfx-*'
  prefixes and each one can provide a logo and a brand.
  
  drawer.addBrand/drawer.addLogo will remain in place until FreeBSD 13, as
  there's no overhead to them and it's not yet worth the break in
  compatibility with any pre-existing brands and logos.

Added:
  stable/12/stand/lua/gfx-beastie.lua
     - copied unchanged from r366435, head/stand/lua/gfx-beastie.lua
  stable/12/stand/lua/gfx-beastiebw.lua
     - copied unchanged from r366435, head/stand/lua/gfx-beastiebw.lua
  stable/12/stand/lua/gfx-fbsdbw.lua
     - copied unchanged from r366435, head/stand/lua/gfx-fbsdbw.lua
  stable/12/stand/lua/gfx-orb.lua
     - copied unchanged from r366435, head/stand/lua/gfx-orb.lua
  stable/12/stand/lua/gfx-orbbw.lua
     - copied unchanged from r366435, head/stand/lua/gfx-orbbw.lua
Deleted:
  stable/12/stand/lua/logo-beastie.lua
  stable/12/stand/lua/logo-beastiebw.lua
  stable/12/stand/lua/logo-fbsdbw.lua
  stable/12/stand/lua/logo-orb.lua
  stable/12/stand/lua/logo-orbbw.lua
Modified:
  stable/12/ObsoleteFiles.inc
  stable/12/stand/lua/Makefile
  stable/12/stand/lua/drawer.lua
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/ObsoleteFiles.inc
==============================================================================
--- stable/12/ObsoleteFiles.inc	Sat Nov 14 02:03:34 2020	(r367665)
+++ stable/12/ObsoleteFiles.inc	Sat Nov 14 02:11:04 2020	(r367666)
@@ -38,6 +38,13 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20201004: logo files renamed to type-agnostic gfx-*.lua
+OLD_FILES+=boot/lua/logo-beastie.lua
+OLD_FILES+=boot/lua/logo-beastiebw.lua
+OLD_FILES+=boot/lua/logo-fbsdbw.lua
+OLD_FILES+=boot/lua/logo-orb.lua
+OLD_FILES+=boot/lua/logo-orbbw.lua
+
 # 20200722: new clang import which bumps version from 10.0.0 to 10.0.1.
 OLD_FILES+=usr/lib/clang/10.0.0/include/cuda_wrappers/algorithm
 OLD_FILES+=usr/lib/clang/10.0.0/include/cuda_wrappers/complex

Modified: stable/12/stand/lua/Makefile
==============================================================================
--- stable/12/stand/lua/Makefile	Sat Nov 14 02:03:34 2020	(r367665)
+++ stable/12/stand/lua/Makefile	Sat Nov 14 02:11:04 2020	(r367666)
@@ -20,11 +20,11 @@ FILES=	cli.lua \
 	drawer.lua \
 	hook.lua \
 	loader.lua \
-	logo-beastie.lua \
-	logo-beastiebw.lua \
-	logo-fbsdbw.lua \
-	logo-orb.lua \
-	logo-orbbw.lua \
+	gfx-beastie.lua \
+	gfx-beastiebw.lua \
+	gfx-fbsdbw.lua \
+	gfx-orb.lua \
+	gfx-orbbw.lua \
 	menu.lua \
 	password.lua \
 	screen.lua

Modified: stable/12/stand/lua/drawer.lua
==============================================================================
--- stable/12/stand/lua/drawer.lua	Sat Nov 14 02:03:34 2020	(r367665)
+++ stable/12/stand/lua/drawer.lua	Sat Nov 14 02:11:04 2020	(r367666)
@@ -61,6 +61,35 @@ local function menuEntryName(drawing_menu, entry)
 	return entry.name
 end
 
+local function processFile(gfxname)
+	if gfxname == nil then
+		return false, "Missing filename"
+	end
+
+	local ret = try_include('gfx-' .. gfxname)
+	if ret == nil then
+		return false, "Failed to include gfx-" .. gfxname
+	end
+
+	-- Legacy format
+	if type(ret) ~= "table" then
+		return true
+	end
+
+	for gfxtype, def in pairs(ret) do
+		if gfxtype == "brand" then
+			drawer.addBrand(gfxname, def)
+		elseif gfxtype == "logo" then
+			drawer.addLogo(gfxname, def)
+		else
+			return false, "Unknown graphics type '" .. gfxtype ..
+			    "'"
+		end
+	end
+
+	return true
+end
+
 local function getBranddef(brand)
 	if brand == nil then
 		return nil
@@ -70,7 +99,18 @@ local function getBranddef(brand)
 
 	-- Try to pull it in
 	if branddef == nil then
-		try_include('brand-' .. brand)
+		local res, err = processFile(brand)
+		if not res then
+			-- This fallback should go away after FreeBSD 13.
+			try_include('brand-' .. brand)
+			-- If the fallback also failed, print whatever error
+			-- we encountered in the original processing.
+			if branddefs[brand] == nil then
+				print(err)
+				return nil
+			end
+		end
+
 		branddef = branddefs[brand]
 	end
 
@@ -86,7 +126,18 @@ local function getLogodef(logo)
 
 	-- Try to pull it in
 	if logodef == nil then
-		try_include('logo-' .. logo)
+		local res, err = processFile(logo)
+		if not res then
+			-- This fallback should go away after FreeBSD 13.
+			try_include('logo-' .. logo)
+			-- If the fallback also failed, print whatever error
+			-- we encountered in the original processing.
+			if logodefs[logo] == nil then
+				print(err)
+				return nil
+			end
+		end
+
 		logodef = logodefs[logo]
 	end
 
@@ -364,6 +415,8 @@ drawer.default_bw_logodef = 'orbbw'
 -- drawer module in case it's a filesystem issue.
 drawer.default_fallback_logodef = 'none'
 
+-- These should go away after FreeBSD 13; only available for backwards
+-- compatibility with old logo- files.
 function drawer.addBrand(name, def)
 	branddefs[name] = def
 end

Copied: stable/12/stand/lua/gfx-beastie.lua (from r366435, head/stand/lua/gfx-beastie.lua)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/stand/lua/gfx-beastie.lua	Sat Nov 14 02:11:04 2020	(r367666, copy of r366435, head/stand/lua/gfx-beastie.lua)
@@ -0,0 +1,55 @@
+--
+-- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+--
+-- Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+-- 1. Redistributions of source code must retain the above copyright
+--    notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above copyright
+--    notice, this list of conditions and the following disclaimer in the
+--    documentation and/or other materials provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-- SUCH DAMAGE.
+--
+-- $FreeBSD$
+--
+
+return {
+	logo = {
+		graphic = {
+		    "               \027[31m,        ,",
+		    "              /(        )`",
+		    "              \\ \\___   / |",
+		    "              /- \027[37m_\027[31m  `-/  '",
+		    "             (\027[37m/\\/ \\\027[31m \\   /\\",
+		    "             \027[37m/ /   |\027[31m `    \\",
+		    "             \027[34mO O   \027[37m) \027[31m/    |",
+		    "             \027[37m`-^--'\027[31m`<     '",
+		    "            (_.)  _  )   /",
+		    "             `.___/`    /",
+		    "               `-----' /",
+		    "  \027[33m<----.\027[31m     __ / __   \\",
+		    "  \027[33m<----|====\027[31mO)))\027[33m==\027[31m) \\) /\027[33m====|",
+		    "  \027[33m<----'\027[31m    `--' `.__,' \\",
+		    "               |        |",
+		    "                \\       /       /\\",
+		    "           \027[36m______\027[31m( (_  / \\______/",
+		    "         \027[36m,'  ,-----'   |",
+		    "         `--{__________)\027[m",
+		},
+		requires_color = true,
+	}
+}

Copied: stable/12/stand/lua/gfx-beastiebw.lua (from r366435, head/stand/lua/gfx-beastiebw.lua)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/stand/lua/gfx-beastiebw.lua	Sat Nov 14 02:11:04 2020	(r367666, copy of r366435, head/stand/lua/gfx-beastiebw.lua)
@@ -0,0 +1,54 @@
+--
+-- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+--
+-- Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+-- 1. Redistributions of source code must retain the above copyright
+--    notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above copyright
+--    notice, this list of conditions and the following disclaimer in the
+--    documentation and/or other materials provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-- SUCH DAMAGE.
+--
+-- $FreeBSD$
+--
+
+return {
+	logo = {
+		graphic = {
+		    "               ,        ,",
+		    "              /(        )`",
+		    "              \\ \\___   / |",
+		    "              /- _  `-/  '",
+		    "             (/\\/ \\ \\   /\\",
+		    "             / /   | `    \\",
+		    "             O O   ) /    |",
+		    "             `-^--'`<     '",
+		    "            (_.)  _  )   /",
+		    "             `.___/`    /",
+		    "               `-----' /",
+		    "  <----.     __ / __   \\",
+		    "  <----|====O)))==) \\) /====|",
+		    "  <----'    `--' `.__,' \\",
+		    "               |        |",
+		    "                \\       /       /\\",
+		    "           ______( (_  / \\______/",
+		    "         ,'  ,-----'   |",
+		    "         `--{__________)",
+		},
+	}
+}

Copied: stable/12/stand/lua/gfx-fbsdbw.lua (from r366435, head/stand/lua/gfx-fbsdbw.lua)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/stand/lua/gfx-fbsdbw.lua	Sat Nov 14 02:11:04 2020	(r367666, copy of r366435, head/stand/lua/gfx-fbsdbw.lua)
@@ -0,0 +1,49 @@
+--
+-- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+--
+-- Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+-- 1. Redistributions of source code must retain the above copyright
+--    notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above copyright
+--    notice, this list of conditions and the following disclaimer in the
+--    documentation and/or other materials provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-- SUCH DAMAGE.
+--
+-- $FreeBSD$
+--
+
+return {
+	logo = {
+		graphic = {
+		    "  ______",
+		    " |  ____| __ ___  ___ ",
+		    " | |__ | '__/ _ \\/ _ \\",
+		    " |  __|| | |  __/  __/",
+		    " | |   | | |    |    |",
+		    " |_|   |_|  \\___|\\___|",
+		    "  ____   _____ _____",
+		    " |  _ \\ / ____|  __ \\",
+		    " | |_) | (___ | |  | |",
+		    " |  _ < \\___ \\| |  | |",
+		    " | |_) |____) | |__| |",
+		    " |     |      |      |",
+		    " |____/|_____/|_____/",
+		},
+		shift = {x = 5, y = 4},
+	}
+}

Copied: stable/12/stand/lua/gfx-orb.lua (from r366435, head/stand/lua/gfx-orb.lua)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/stand/lua/gfx-orb.lua	Sat Nov 14 02:11:04 2020	(r367666, copy of r366435, head/stand/lua/gfx-orb.lua)
@@ -0,0 +1,52 @@
+--
+-- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+--
+-- Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+-- 1. Redistributions of source code must retain the above copyright
+--    notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above copyright
+--    notice, this list of conditions and the following disclaimer in the
+--    documentation and/or other materials provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-- SUCH DAMAGE.
+--
+-- $FreeBSD$
+--
+
+return {
+	logo = {
+		graphic = {
+		    "  \027[31m```                        \027[31;1m`\027[31m",
+		    " s` `.....---...\027[31;1m....--.```   -/\027[31m",
+		    " +o   .--`         \027[31;1m/y:`      +.\027[31m",
+		    "  yo`:.            \027[31;1m:o      `+-\027[31m",
+		    "   y/               \027[31;1m-/`   -o/\027[31m",
+		    "  .-                  \027[31;1m::/sy+:.\027[31m",
+		    "  /                     \027[31;1m`--  /\027[31m",
+		    " `:                          \027[31;1m:`\027[31m",
+		    " `:                          \027[31;1m:`\027[31m",
+		    "  /                          \027[31;1m/\027[31m",
+		    "  .-                        \027[31;1m-.\027[31m",
+		    "   --                      \027[31;1m-.\027[31m",
+		    "    `:`                  \027[31;1m`:`",
+		    "      \027[31;1m.--             `--.",
+		    "         .---.....----.\027[m",
+		},
+		requires_color = true,
+		shift = {x = 2, y = 4},
+	}
+}

Copied: stable/12/stand/lua/gfx-orbbw.lua (from r366435, head/stand/lua/gfx-orbbw.lua)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/12/stand/lua/gfx-orbbw.lua	Sat Nov 14 02:11:04 2020	(r367666, copy of r366435, head/stand/lua/gfx-orbbw.lua)
@@ -0,0 +1,51 @@
+--
+-- SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+--
+-- Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org>
+--
+-- Redistribution and use in source and binary forms, with or without
+-- modification, are permitted provided that the following conditions
+-- are met:
+-- 1. Redistributions of source code must retain the above copyright
+--    notice, this list of conditions and the following disclaimer.
+-- 2. Redistributions in binary form must reproduce the above copyright
+--    notice, this list of conditions and the following disclaimer in the
+--    documentation and/or other materials provided with the distribution.
+--
+-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+-- ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+-- SUCH DAMAGE.
+--
+-- $FreeBSD$
+--
+
+return {
+	logo = {
+		graphic = {
+		    "  ```                        `",
+		    " s` `.....---.......--.```   -/",
+		    " +o   .--`         /y:`      +.",
+		    "  yo`:.            :o      `+-",
+		    "   y/               -/`   -o/",
+		    "  .-                  ::/sy+:.",
+		    "  /                     `--  /",
+		    " `:                          :`",
+		    " `:                          :`",
+		    "  /                          /",
+		    "  .-                        -.",
+		    "   --                      -.",
+		    "    `:`                  `:`",
+		    "      .--             `--.",
+		    "         .---.....----.",
+		},
+		shift = {x = 2, y = 4},
+	}
+}



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