Date: Sun, 4 Oct 2020 22:41:43 +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: r366435 - in head: . stand/lua Message-ID: <202010042241.094MfhOV068827@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kevans Date: Sun Oct 4 22:41:43 2020 New Revision: 366435 URL: https://svnweb.freebsd.org/changeset/base/366435 Log: 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. Reviewed by: freqlabs MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D24966 Added: head/stand/lua/gfx-beastie.lua - copied, changed from r366434, head/stand/lua/logo-beastie.lua head/stand/lua/gfx-beastiebw.lua - copied, changed from r366434, head/stand/lua/logo-beastiebw.lua head/stand/lua/gfx-fbsdbw.lua - copied, changed from r366434, head/stand/lua/logo-fbsdbw.lua head/stand/lua/gfx-orb.lua - copied, changed from r366434, head/stand/lua/logo-orb.lua head/stand/lua/gfx-orbbw.lua - copied, changed from r366434, head/stand/lua/logo-orbbw.lua Deleted: head/stand/lua/logo-beastie.lua head/stand/lua/logo-beastiebw.lua head/stand/lua/logo-fbsdbw.lua head/stand/lua/logo-orb.lua head/stand/lua/logo-orbbw.lua Modified: head/ObsoleteFiles.inc head/stand/lua/Makefile head/stand/lua/drawer.lua Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sun Oct 4 19:59:12 2020 (r366434) +++ head/ObsoleteFiles.inc Sun Oct 4 22:41:43 2020 (r366435) @@ -36,6 +36,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 + # 20200923: memfd_test moved to /usr/tests/sys/posixshm OLD_FILES+=usr/tests/sys/kern/memfd_test Modified: head/stand/lua/Makefile ============================================================================== --- head/stand/lua/Makefile Sun Oct 4 19:59:12 2020 (r366434) +++ head/stand/lua/Makefile Sun Oct 4 22:41:43 2020 (r366435) @@ -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: head/stand/lua/drawer.lua ============================================================================== --- head/stand/lua/drawer.lua Sun Oct 4 19:59:12 2020 (r366434) +++ head/stand/lua/drawer.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -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 and modified: head/stand/lua/gfx-beastie.lua (from r366434, head/stand/lua/logo-beastie.lua) ============================================================================== --- head/stand/lua/logo-beastie.lua Sun Oct 4 19:59:12 2020 (r366434, copy source) +++ head/stand/lua/gfx-beastie.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -27,33 +27,29 @@ -- $FreeBSD$ -- -local drawer = require("drawer") - -local beastie_color = { -" \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" +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, + } } - -drawer.addLogo("beastie", { - requires_color = true, - graphic = beastie_color, -}) - -return true Copied and modified: head/stand/lua/gfx-beastiebw.lua (from r366434, head/stand/lua/logo-beastiebw.lua) ============================================================================== --- head/stand/lua/logo-beastiebw.lua Sun Oct 4 19:59:12 2020 (r366434, copy source) +++ head/stand/lua/gfx-beastiebw.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -27,32 +27,28 @@ -- $FreeBSD$ -- -local drawer = require("drawer") - -local beastiebw = { -" , ,", -" /( )`", -" \\ \\___ / |", -" /- _ `-/ '", -" (/\\/ \\ \\ /\\", -" / / | ` \\", -" O O ) / |", -" `-^--'`< '", -" (_.) _ ) /", -" `.___/` /", -" `-----' /", -" <----. __ / __ \\", -" <----|====O)))==) \\) /====|", -" <----' `--' `.__,' \\", -" | |", -" \\ / /\\", -" ______( (_ / \\______/", -" ,' ,-----' |", -" `--{__________)" +return { + logo = { + graphic = { + " , ,", + " /( )`", + " \\ \\___ / |", + " /- _ `-/ '", + " (/\\/ \\ \\ /\\", + " / / | ` \\", + " O O ) / |", + " `-^--'`< '", + " (_.) _ ) /", + " `.___/` /", + " `-----' /", + " <----. __ / __ \\", + " <----|====O)))==) \\) /====|", + " <----' `--' `.__,' \\", + " | |", + " \\ / /\\", + " ______( (_ / \\______/", + " ,' ,-----' |", + " `--{__________)", + }, + } } - -drawer.addLogo("beastiebw", { - graphic = beastiebw, -}) - -return true Copied and modified: head/stand/lua/gfx-fbsdbw.lua (from r366434, head/stand/lua/logo-fbsdbw.lua) ============================================================================== --- head/stand/lua/logo-fbsdbw.lua Sun Oct 4 19:59:12 2020 (r366434, copy source) +++ head/stand/lua/gfx-fbsdbw.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -27,27 +27,23 @@ -- $FreeBSD$ -- -local drawer = require("drawer") - -local fbsd_logo = { -" ______", -" | ____| __ ___ ___ ", -" | |__ | '__/ _ \\/ _ \\", -" | __|| | | __/ __/", -" | | | | | | |", -" |_| |_| \\___|\\___|", -" ____ _____ _____", -" | _ \\ / ____| __ \\", -" | |_) | (___ | | | |", -" | _ < \\___ \\| | | |", -" | |_) |____) | |__| |", -" | | | |", -" |____/|_____/|_____/" +return { + logo = { + graphic = { + " ______", + " | ____| __ ___ ___ ", + " | |__ | '__/ _ \\/ _ \\", + " | __|| | | __/ __/", + " | | | | | | |", + " |_| |_| \\___|\\___|", + " ____ _____ _____", + " | _ \\ / ____| __ \\", + " | |_) | (___ | | | |", + " | _ < \\___ \\| | | |", + " | |_) |____) | |__| |", + " | | | |", + " |____/|_____/|_____/", + }, + shift = {x = 5, y = 4}, + } } - -drawer.addLogo("fbsdbw", { - graphic = fbsd_logo, - shift = {x = 5, y = 4}, -}) - -return true Copied and modified: head/stand/lua/gfx-orb.lua (from r366434, head/stand/lua/logo-orb.lua) ============================================================================== --- head/stand/lua/logo-orb.lua Sun Oct 4 19:59:12 2020 (r366434, copy source) +++ head/stand/lua/gfx-orb.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -27,30 +27,26 @@ -- $FreeBSD$ -- -local drawer = require("drawer") - -local orb_color = { -" \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" +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}, + } } - -drawer.addLogo("orb", { - requires_color = true, - graphic = orb_color, - shift = {x = 2, y = 4}, -}) - -return true Copied and modified: head/stand/lua/gfx-orbbw.lua (from r366434, head/stand/lua/logo-orbbw.lua) ============================================================================== --- head/stand/lua/logo-orbbw.lua Sun Oct 4 19:59:12 2020 (r366434, copy source) +++ head/stand/lua/gfx-orbbw.lua Sun Oct 4 22:41:43 2020 (r366435) @@ -27,29 +27,25 @@ -- $FreeBSD$ -- -local drawer = require("drawer") - -local orbbw = { -" ``` `", -" s` `.....---.......--.``` -/", -" +o .--` /y:` +.", -" yo`:. :o `+-", -" y/ -/` -o/", -" .- ::/sy+:.", -" / `-- /", -" `: :`", -" `: :`", -" / /", -" .- -.", -" -- -.", -" `:` `:`", -" .-- `--.", -" .---.....----." +return { + logo = { + graphic = { + " ``` `", + " s` `.....---.......--.``` -/", + " +o .--` /y:` +.", + " yo`:. :o `+-", + " y/ -/` -o/", + " .- ::/sy+:.", + " / `-- /", + " `: :`", + " `: :`", + " / /", + " .- -.", + " -- -.", + " `:` `:`", + " .-- `--.", + " .---.....----.", + }, + shift = {x = 2, y = 4}, + } } - -drawer.addLogo("orbbw", { - graphic = orbbw, - shift = {x = 2, y = 4}, -}) - -return true
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010042241.094MfhOV068827>