svn commit: r329355 - head/stand/lua
Kyle Evans
kevans at FreeBSD.org
Fri Feb 16 04:31:10 UTC 2018
Author: kevans
Date: Fri Feb 16 04:31:09 2018
New Revision: 329355
URL: https://svnweb.freebsd.org/changeset/base/329355
Log:
stand/lua: Move kernel selection into main menu
This matches the corresponding 4th behavior.
Modified:
head/stand/lua/menu.lua
Modified: head/stand/lua/menu.lua
==============================================================================
--- head/stand/lua/menu.lua Fri Feb 16 04:30:57 2018 (r329354)
+++ head/stand/lua/menu.lua Fri Feb 16 04:31:09 2018 (r329355)
@@ -39,26 +39,14 @@ local OnOff;
local skip;
local run;
local autoboot;
+local current_kernel_index = 1;
--loader menu tree:
--rooted at menu.welcome
--submenu declarations:
-local kernel_options;
local boot_options;
local welcome;
-menu.kernel_options = {
- -- this table is dynamically appended to when accessed
- -- return to welcome menu
- {
- entry_type = "return",
- name = function()
- return "Back to main menu"..color.highlight(" [Backspace]");
- end,
- alias = {"\08"}
- }
-};
-
menu.boot_options = {
-- return to welcome menu
{
@@ -206,35 +194,34 @@ menu.welcome = {
-- kernel options
{
- entry_type = "submenu",
+ entry_type = "entry",
name = function()
local kernels = core.kernelList();
if #kernels == 0 then
- return "Kernels (not available)";
+ return "Kernel: ";
end
- return color.highlight("K").."ernels";
+
+ local kernel_name = color.escapef(color.GREEN) ..
+ kernels[current_kernel_index] .. color.default();
+ if (current_kernel_index == 1) then
+ kernel_name = "default/" .. kernel_name;
+ end
+ return color.highlight("K").."ernel: " .. kernel_name ..
+ " (" .. current_kernel_index ..
+ " of " .. #kernels .. ")";
end,
- submenu = function()
+ func = function()
-- dynamically build the kernel menu:
local kernels = core.kernelList();
- if #kernels == 0 then
+ -- Don't do anything if we don't have multiple kernels
+ if #kernels <= 1 then
return nil;
end
- for k, v in ipairs(kernels) do
- menu.kernel_options[#menu.kernel_options + 1] = {
- entry_type = "entry",
- name = function()
- return v;
- end,
- func = function()
- config.reload(v);
- end,
- alias = {} -- automatically enumerated
- }
- end
-
- return menu.kernel_options;
+ current_kernel_index = (current_kernel_index % #kernels)
+ + 1;
+ local current_kernel = kernels[current_kernel_index];
+ config.reload(current_kernel)
end,
alias = {"k", "K"}
},
More information about the svn-src-head
mailing list