From owner-svn-src-head@freebsd.org Fri Feb 16 04:31:10 2018 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1839F12ACC; Fri, 16 Feb 2018 04:31:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8467A833B3; Fri, 16 Feb 2018 04:31:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7F7DD83B; Fri, 16 Feb 2018 04:31:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w1G4V9AQ022399; Fri, 16 Feb 2018 04:31:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w1G4V9iu022398; Fri, 16 Feb 2018 04:31:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201802160431.w1G4V9iu022398@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 16 Feb 2018 04:31:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r329355 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 329355 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Feb 2018 04:31:10 -0000 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"} },