Date: Thu, 25 Sep 2014 01:02:03 GMT From: pedrosouza@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r274638 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua Message-ID: <201409250102.s8P123gd041106@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 +};
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409250102.s8P123gd041106>
