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 <kev...@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 <kev...@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 <kev...@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 <kev...@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 <kev...@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},
+       }
+}
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to