From owner-svn-soc-all@FreeBSD.ORG Thu Sep 25 01:02:05 2014 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 49C3133E for ; Thu, 25 Sep 2014 01:02:05 +0000 (UTC) Received: from socsvn.freebsd.org (socsvn.freebsd.org [IPv6:2001:1900:2254:206a::50:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 34E506C5 for ; Thu, 25 Sep 2014 01:02:05 +0000 (UTC) Received: from socsvn.freebsd.org ([127.0.1.124]) by socsvn.freebsd.org (8.14.9/8.14.9) with ESMTP id s8P125hU041679 for ; Thu, 25 Sep 2014 01:02:05 GMT (envelope-from pedrosouza@FreeBSD.org) Received: (from www@localhost) by socsvn.freebsd.org (8.14.9/8.14.9/Submit) id s8P123gd041106 for svn-soc-all@FreeBSD.org; Thu, 25 Sep 2014 01:02:03 GMT (envelope-from pedrosouza@FreeBSD.org) Date: Thu, 25 Sep 2014 01:02:03 GMT Message-Id: <201409250102.s8P123gd041106@socsvn.freebsd.org> X-Authentication-Warning: socsvn.freebsd.org: www set sender to pedrosouza@FreeBSD.org using -f From: pedrosouza@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r274638 - soc2014/pedrosouza/lua_loader/head/sys/boot/lua MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2014 01:02:05 -0000 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 +};