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