socsvn commit: r274638 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua
pedrosouza at FreeBSD.org
pedrosouza at FreeBSD.org
Thu Sep 25 01:02:05 UTC 2014
Author: pedrosouza
Date: Thu Sep 25 01:02:03 2014
New Revision: 274638
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=274638
Log:
Added proper kernel listing and menu skiping
Modified:
soc2014/pedrosouza/lua_loader/head/sys/boot/lua/core.lua
soc2014/pedrosouza/lua_loader/head/sys/boot/lua/loader.lua
soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua
Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/core.lua
==============================================================================
--- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/core.lua Wed Sep 24 22:58:10 2014 (r274637)
+++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/core.lua Thu Sep 25 01:02:03 2014 (r274638)
@@ -67,6 +67,26 @@
core.sm = b;
end
+function core.kernelList()
+ local k = loader.getenv("kernel");
+ local v = loader.getenv("kernels") or "";
+
+ local kernels = {};
+ local i = 0;
+ if k ~= nil then
+ i = i + 1;
+ kernels[i] = k;
+ end
+
+ for n in v:gmatch("([^; ]+)[; ]?") do
+ if n ~= k then
+ i = i + 1;
+ kernels[i] = n;
+ end
+ end
+ return kernels;
+end
+
function core.setDefaults()
core.setACPI(true);
core.setSafeMode(false);
Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/loader.lua
==============================================================================
--- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/loader.lua Wed Sep 24 22:58:10 2014 (r274637)
+++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/loader.lua Thu Sep 25 01:02:03 2014 (r274638)
@@ -10,6 +10,7 @@
include("/boot/password.lua");
include("/boot/config.lua");
+
config.load();
password.check();
Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua
==============================================================================
--- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Wed Sep 24 22:58:10 2014 (r274637)
+++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Thu Sep 25 01:02:03 2014 (r274638)
@@ -22,10 +22,23 @@
end
end
+function menu.skip()
+ if core.bootserial() then
+ return true;
+ end
+ local c = string.lower(loader.getenv("console") or "");
+ if (c:match("^efi[ ;]") or c:match("[ ;]efi[ ;]")) ~= nil then
+ return true;
+ end
+
+ c = string.lower(loader.getenv("beastie_disable") or "");
+ return c == "yes";
+
+end
+
function menu.run(opts)
- -- no escape code supported do not draw menu
- if core.bootserial() then
+ if menu.skip() then
core.autoboot();
return;
end
@@ -173,34 +186,29 @@
["6"] = {
index = 6,
getName = function ()
- local v = loader.getenv("kernels");
- if not v then
+ local k = core.kernelList();
+ if #k == 0 then
return "Kernels (not availabe)";
end
return "Kernels";
end,
func = function()
local kernels = {};
- local v = loader.getenv("kernels");
- local i = 1;
-
- if not v then return; end
+ local ker = core.kernelList();
+ if #ker == 0 then return false; end
- kernels[tostring(i)] = {
- index = i,
+ kernels["1"] = {
+ index = 1,
name = "Return to menu "..color.highlight("[Backspace]"),
func = function() return true; end
};
- kernels.alias = {["\08"] = kernels[tostring(i)]};
- i = i + 1;
-
- for k in v:gmatch("([^;]+);?") do
- kernels[tostring(i)] = {
- index = i,
- name = k,
- func = function() config.reload(k); end
+ kernels.alias = {["\008"] = kernels["1"]};
+ for k, v in ipairs(ker) do
+ kernels[tostring(k+1)] = {
+ index = k+1,
+ name = v,
+ func = function() config.reload(v); end
};
- i = i + 1;
end
menu.run(kernels);
return false;
@@ -272,4 +280,4 @@
["m"] = boot_options["4"],
["s"] = boot_options["5"],
["v"] = boot_options["6"]
-};
\ No newline at end of file
+};
More information about the svn-soc-all
mailing list