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
This commit is contained in:
parent
3331a1d173
commit
546f18f3da
@ -36,6 +36,13 @@
|
|||||||
# xargs -n1 | sort | uniq -d;
|
# xargs -n1 | sort | uniq -d;
|
||||||
# done
|
# 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
|
# 20200923: memfd_test moved to /usr/tests/sys/posixshm
|
||||||
OLD_FILES+=usr/tests/sys/kern/memfd_test
|
OLD_FILES+=usr/tests/sys/kern/memfd_test
|
||||||
|
|
||||||
|
@ -20,11 +20,11 @@ FILES= cli.lua \
|
|||||||
drawer.lua \
|
drawer.lua \
|
||||||
hook.lua \
|
hook.lua \
|
||||||
loader.lua \
|
loader.lua \
|
||||||
logo-beastie.lua \
|
gfx-beastie.lua \
|
||||||
logo-beastiebw.lua \
|
gfx-beastiebw.lua \
|
||||||
logo-fbsdbw.lua \
|
gfx-fbsdbw.lua \
|
||||||
logo-orb.lua \
|
gfx-orb.lua \
|
||||||
logo-orbbw.lua \
|
gfx-orbbw.lua \
|
||||||
menu.lua \
|
menu.lua \
|
||||||
password.lua \
|
password.lua \
|
||||||
screen.lua
|
screen.lua
|
||||||
|
@ -61,6 +61,35 @@ local function menuEntryName(drawing_menu, entry)
|
|||||||
return entry.name
|
return entry.name
|
||||||
end
|
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)
|
local function getBranddef(brand)
|
||||||
if brand == nil then
|
if brand == nil then
|
||||||
return nil
|
return nil
|
||||||
@ -70,7 +99,18 @@ local function getBranddef(brand)
|
|||||||
|
|
||||||
-- Try to pull it in
|
-- Try to pull it in
|
||||||
if branddef == nil then
|
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]
|
branddef = branddefs[brand]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -86,7 +126,18 @@ local function getLogodef(logo)
|
|||||||
|
|
||||||
-- Try to pull it in
|
-- Try to pull it in
|
||||||
if logodef == nil then
|
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]
|
logodef = logodefs[logo]
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -364,6 +415,8 @@ drawer.default_bw_logodef = 'orbbw'
|
|||||||
-- drawer module in case it's a filesystem issue.
|
-- drawer module in case it's a filesystem issue.
|
||||||
drawer.default_fallback_logodef = 'none'
|
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)
|
function drawer.addBrand(name, def)
|
||||||
branddefs[name] = def
|
branddefs[name] = def
|
||||||
end
|
end
|
||||||
|
@ -27,33 +27,29 @@
|
|||||||
-- $FreeBSD$
|
-- $FreeBSD$
|
||||||
--
|
--
|
||||||
|
|
||||||
local drawer = require("drawer")
|
return {
|
||||||
|
logo = {
|
||||||
local beastie_color = {
|
graphic = {
|
||||||
" \027[31m, ,",
|
" \027[31m, ,",
|
||||||
" /( )`",
|
" /( )`",
|
||||||
" \\ \\___ / |",
|
" \\ \\___ / |",
|
||||||
" /- \027[37m_\027[31m `-/ '",
|
" /- \027[37m_\027[31m `-/ '",
|
||||||
" (\027[37m/\\/ \\\027[31m \\ /\\",
|
" (\027[37m/\\/ \\\027[31m \\ /\\",
|
||||||
" \027[37m/ / |\027[31m ` \\",
|
" \027[37m/ / |\027[31m ` \\",
|
||||||
" \027[34mO O \027[37m) \027[31m/ |",
|
" \027[34mO O \027[37m) \027[31m/ |",
|
||||||
" \027[37m`-^--'\027[31m`< '",
|
" \027[37m`-^--'\027[31m`< '",
|
||||||
" (_.) _ ) /",
|
" (_.) _ ) /",
|
||||||
" `.___/` /",
|
" `.___/` /",
|
||||||
" `-----' /",
|
" `-----' /",
|
||||||
" \027[33m<----.\027[31m __ / __ \\",
|
" \027[33m<----.\027[31m __ / __ \\",
|
||||||
" \027[33m<----|====\027[31mO)))\027[33m==\027[31m) \\) /\027[33m====|",
|
" \027[33m<----|====\027[31mO)))\027[33m==\027[31m) \\) /\027[33m====|",
|
||||||
" \027[33m<----'\027[31m `--' `.__,' \\",
|
" \027[33m<----'\027[31m `--' `.__,' \\",
|
||||||
" | |",
|
" | |",
|
||||||
" \\ / /\\",
|
" \\ / /\\",
|
||||||
" \027[36m______\027[31m( (_ / \\______/",
|
" \027[36m______\027[31m( (_ / \\______/",
|
||||||
" \027[36m,' ,-----' |",
|
" \027[36m,' ,-----' |",
|
||||||
" `--{__________)\027[m"
|
" `--{__________)\027[m",
|
||||||
|
},
|
||||||
|
requires_color = true,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer.addLogo("beastie", {
|
|
||||||
requires_color = true,
|
|
||||||
graphic = beastie_color,
|
|
||||||
})
|
|
||||||
|
|
||||||
return true
|
|
@ -27,32 +27,28 @@
|
|||||||
-- $FreeBSD$
|
-- $FreeBSD$
|
||||||
--
|
--
|
||||||
|
|
||||||
local drawer = require("drawer")
|
return {
|
||||||
|
logo = {
|
||||||
local beastiebw = {
|
graphic = {
|
||||||
" , ,",
|
" , ,",
|
||||||
" /( )`",
|
" /( )`",
|
||||||
" \\ \\___ / |",
|
" \\ \\___ / |",
|
||||||
" /- _ `-/ '",
|
" /- _ `-/ '",
|
||||||
" (/\\/ \\ \\ /\\",
|
" (/\\/ \\ \\ /\\",
|
||||||
" / / | ` \\",
|
" / / | ` \\",
|
||||||
" O O ) / |",
|
" O O ) / |",
|
||||||
" `-^--'`< '",
|
" `-^--'`< '",
|
||||||
" (_.) _ ) /",
|
" (_.) _ ) /",
|
||||||
" `.___/` /",
|
" `.___/` /",
|
||||||
" `-----' /",
|
" `-----' /",
|
||||||
" <----. __ / __ \\",
|
" <----. __ / __ \\",
|
||||||
" <----|====O)))==) \\) /====|",
|
" <----|====O)))==) \\) /====|",
|
||||||
" <----' `--' `.__,' \\",
|
" <----' `--' `.__,' \\",
|
||||||
" | |",
|
" | |",
|
||||||
" \\ / /\\",
|
" \\ / /\\",
|
||||||
" ______( (_ / \\______/",
|
" ______( (_ / \\______/",
|
||||||
" ,' ,-----' |",
|
" ,' ,-----' |",
|
||||||
" `--{__________)"
|
" `--{__________)",
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer.addLogo("beastiebw", {
|
|
||||||
graphic = beastiebw,
|
|
||||||
})
|
|
||||||
|
|
||||||
return true
|
|
@ -27,27 +27,23 @@
|
|||||||
-- $FreeBSD$
|
-- $FreeBSD$
|
||||||
--
|
--
|
||||||
|
|
||||||
local drawer = require("drawer")
|
return {
|
||||||
|
logo = {
|
||||||
local fbsd_logo = {
|
graphic = {
|
||||||
" ______",
|
" ______",
|
||||||
" | ____| __ ___ ___ ",
|
" | ____| __ ___ ___ ",
|
||||||
" | |__ | '__/ _ \\/ _ \\",
|
" | |__ | '__/ _ \\/ _ \\",
|
||||||
" | __|| | | __/ __/",
|
" | __|| | | __/ __/",
|
||||||
" | | | | | | |",
|
" | | | | | | |",
|
||||||
" |_| |_| \\___|\\___|",
|
" |_| |_| \\___|\\___|",
|
||||||
" ____ _____ _____",
|
" ____ _____ _____",
|
||||||
" | _ \\ / ____| __ \\",
|
" | _ \\ / ____| __ \\",
|
||||||
" | |_) | (___ | | | |",
|
" | |_) | (___ | | | |",
|
||||||
" | _ < \\___ \\| | | |",
|
" | _ < \\___ \\| | | |",
|
||||||
" | |_) |____) | |__| |",
|
" | |_) |____) | |__| |",
|
||||||
" | | | |",
|
" | | | |",
|
||||||
" |____/|_____/|_____/"
|
" |____/|_____/|_____/",
|
||||||
|
},
|
||||||
|
shift = {x = 5, y = 4},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer.addLogo("fbsdbw", {
|
|
||||||
graphic = fbsd_logo,
|
|
||||||
shift = {x = 5, y = 4},
|
|
||||||
})
|
|
||||||
|
|
||||||
return true
|
|
@ -27,30 +27,26 @@
|
|||||||
-- $FreeBSD$
|
-- $FreeBSD$
|
||||||
--
|
--
|
||||||
|
|
||||||
local drawer = require("drawer")
|
return {
|
||||||
|
logo = {
|
||||||
local orb_color = {
|
graphic = {
|
||||||
" \027[31m``` \027[31;1m`\027[31m",
|
" \027[31m``` \027[31;1m`\027[31m",
|
||||||
" s` `.....---...\027[31;1m....--.``` -/\027[31m",
|
" s` `.....---...\027[31;1m....--.``` -/\027[31m",
|
||||||
" +o .--` \027[31;1m/y:` +.\027[31m",
|
" +o .--` \027[31;1m/y:` +.\027[31m",
|
||||||
" yo`:. \027[31;1m:o `+-\027[31m",
|
" yo`:. \027[31;1m:o `+-\027[31m",
|
||||||
" y/ \027[31;1m-/` -o/\027[31m",
|
" y/ \027[31;1m-/` -o/\027[31m",
|
||||||
" .- \027[31;1m::/sy+:.\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[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[31;1m.-- `--.",
|
" \027[31;1m.-- `--.",
|
||||||
" .---.....----.\027[m"
|
" .---.....----.\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
|
|
@ -27,29 +27,25 @@
|
|||||||
-- $FreeBSD$
|
-- $FreeBSD$
|
||||||
--
|
--
|
||||||
|
|
||||||
local drawer = require("drawer")
|
return {
|
||||||
|
logo = {
|
||||||
local orbbw = {
|
graphic = {
|
||||||
" ``` `",
|
" ``` `",
|
||||||
" s` `.....---.......--.``` -/",
|
" s` `.....---.......--.``` -/",
|
||||||
" +o .--` /y:` +.",
|
" +o .--` /y:` +.",
|
||||||
" yo`:. :o `+-",
|
" yo`:. :o `+-",
|
||||||
" y/ -/` -o/",
|
" y/ -/` -o/",
|
||||||
" .- ::/sy+:.",
|
" .- ::/sy+:.",
|
||||||
" / `-- /",
|
" / `-- /",
|
||||||
" `: :`",
|
" `: :`",
|
||||||
" `: :`",
|
" `: :`",
|
||||||
" / /",
|
" / /",
|
||||||
" .- -.",
|
" .- -.",
|
||||||
" -- -.",
|
" -- -.",
|
||||||
" `:` `:`",
|
" `:` `:`",
|
||||||
" .-- `--.",
|
" .-- `--.",
|
||||||
" .---.....----."
|
" .---.....----.",
|
||||||
|
},
|
||||||
|
shift = {x = 2, y = 4},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
drawer.addLogo("orbbw", {
|
|
||||||
graphic = orbbw,
|
|
||||||
shift = {x = 2, y = 4},
|
|
||||||
})
|
|
||||||
|
|
||||||
return true
|
|
Loading…
Reference in New Issue
Block a user