From owner-svn-src-head@freebsd.org Tue Feb 20 21:37:56 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 979E7F05A8E; Tue, 20 Feb 2018 21:37:56 +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 4A3AE71676; Tue, 20 Feb 2018 21:37:56 +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 453E874BE; Tue, 20 Feb 2018 21:37:56 +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 w1KLbuOn088699; Tue, 20 Feb 2018 21:37:56 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w1KLbuXw088698; Tue, 20 Feb 2018 21:37:56 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <201802202137.w1KLbuXw088698@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 20 Feb 2018 21:37:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r329674 - head/stand/lua X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/stand/lua X-SVN-Commit-Revision: 329674 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: Tue, 20 Feb 2018 21:37:56 -0000 Author: kevans Date: Tue Feb 20 21:37:55 2018 New Revision: 329674 URL: https://svnweb.freebsd.org/changeset/base/329674 Log: lualoader: Intercept the 'autoboot' cli command Modified: head/stand/lua/core.lua Modified: head/stand/lua/core.lua ============================================================================== --- head/stand/lua/core.lua Tue Feb 20 21:32:36 2018 (r329673) +++ head/stand/lua/core.lua Tue Feb 20 21:37:55 2018 (r329674) @@ -37,23 +37,33 @@ local compose_loader_cmd = function(cmd_name, argstr) return cmd_name; end +-- Internal function -- Parses arguments to boot and returns two values: kernel_name, argstr -- Defaults to nil and "" respectively. -local parse_boot_args = function(argv) +-- This will also parse arguments to autoboot, but the with_kernel argument +-- will need to be explicitly overwritten to false +local parse_boot_args = function(argv, with_kernel) if (#argv == 0) then return nil, ""; end + if (with_kernel == nil) then + with_kernel = true; + end local kernel_name; local argstr = ""; for k, v in ipairs(argv) do - if (v:sub(1,1) ~= "-") then + if (with_kernel) and (v:sub(1,1) ~= "-") then kernel_name = v; else argstr = argstr .. " " .. v; end end - return kernel_name, argstr; + if (with_kernel) then + return kernel_name, argstr; + else + return argstr; + end end -- Globals @@ -67,6 +77,14 @@ function boot(...) config.selectkernel(kernel); end core.boot(argstr); +end + +function autoboot(...) + local argv = {...} + local cmd_name = ""; + cmd_name, argv = core.popFrontTable(argv); + local argstr = parse_boot_args(argv, false); + core.autoboot(argstr); end -- Module exports