svn commit: r338309 - head/stand/lua
Kyle Evans
kevans at FreeBSD.org
Sat Aug 25 04:28:03 UTC 2018
Author: kevans
Date: Sat Aug 25 04:28:02 2018
New Revision: 338309
URL: https://svnweb.freebsd.org/changeset/base/338309
Log:
lualoader: Fix override of module_path on loader prompt
Earlier changes setup a config.module_path variable that was populated upon
reading of loader.conf(5) and used for restoring module_path to pristine
condition if multiple kernels are attempted. This broke the ability to
override module_path at the loader prompt in case of emergency.
Approved by: re (rgrimes)
Modified:
head/stand/lua/config.lua
Modified: head/stand/lua/config.lua
==============================================================================
--- head/stand/lua/config.lua Fri Aug 24 22:48:19 2018 (r338308)
+++ head/stand/lua/config.lua Sat Aug 25 04:28:02 2018 (r338309)
@@ -479,6 +479,21 @@ function config.loadKernel(other_kernel)
return nil
end
+ local function getModulePath()
+ local module_path = loader.getenv("module_path")
+ local kernel_path = loader.getenv("kernel_path")
+
+ if kernel_path == nil then
+ return module_path
+ end
+
+ -- Strip the loaded kernel path from module_path. This currently assumes
+ -- that the kernel path will be prepended to the module_path when it's
+ -- found.
+ kernel_path = escapeName(kernel_path .. ';')
+ return module_path:gsub(kernel_path, '')
+ end
+
local function loadBootfile()
local bootfile = loader.getenv("bootfile")
@@ -507,7 +522,7 @@ function config.loadKernel(other_kernel)
else
-- Use our cached module_path, so we don't end up with multiple
-- automatically added kernel paths to our final module_path
- local module_path = config.module_path
+ local module_path = getModulePath()
local res
if other_kernel ~= nil then
@@ -527,6 +542,7 @@ function config.loadKernel(other_kernel)
if module_path ~= nil then
loader.setenv("module_path", v .. ";" ..
module_path)
+ loader.setenv("kernel_path", v)
end
return true
end
@@ -563,8 +579,6 @@ function config.load(file, reloading)
checkNextboot()
- -- Cache the provided module_path at load time for later use
- config.module_path = loader.getenv("module_path")
local verbose = loader.getenv("verbose_loading") or "no"
config.verbose = verbose:lower() == "yes"
if not reloading then
More information about the svn-src-all
mailing list