lualoader: Strip config.parse of its I/O privileges

config.parse is now purely a parser, rather than a whole proccessor. The
standard process for loading a config file has been split out into
config.processFile.

This clears the way for having nextboot read its own config file and decide
there whether it should parse the rest of the file.
This commit is contained in:
Kyle Evans 2018-02-24 20:00:31 +00:00
parent 164b58fdd3
commit 4adde50db2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=329923

View File

@ -134,7 +134,8 @@ local function check_nextboot()
return text:match("^nextboot_enable=\"NO\"") == nil return text:match("^nextboot_enable=\"NO\"") == nil
end end
if not config.parse(nextboot_file, true, check_nextboot_enabled) then if not config.processFile(nextboot_file, true, check_nextboot_enabled)
then
-- This only fails if it actually hit a parse error -- This only fails if it actually hit a parse error
print("Failed to parse nextboot configuration: '" .. print("Failed to parse nextboot configuration: '" ..
nextboot_file .. "'") nextboot_file .. "'")
@ -326,10 +327,7 @@ function config.loadmod(mod, silent)
return status return status
end end
-- silent runs will not return false if we fail to open the file function config.processFile(name, silent, check_and_halt)
-- check_and_halt, if it's set, will be executed on the full text of the config
-- file. If it returns false, we are to halt immediately.
function config.parse(name, silent, check_and_halt)
if silent == nil then if silent == nil then
silent = false silent = false
end end
@ -345,6 +343,14 @@ function config.parse(name, silent, check_and_halt)
return true return true
end end
end end
return config.parse(text)
end
-- silent runs will not return false if we fail to open the file
-- check_and_halt, if it's set, will be executed on the full text of the config
-- file. If it returns false, we are to halt immediately.
function config.parse(text)
local n = 1 local n = 1
local status = true local status = true
@ -473,7 +479,7 @@ function config.load(file)
file = "/boot/defaults/loader.conf" file = "/boot/defaults/loader.conf"
end end
if not config.parse(file) then if not config.processFile(file) then
print("Failed to parse configuration: '" .. file .. "'") print("Failed to parse configuration: '" .. file .. "'")
end end
@ -483,7 +489,7 @@ function config.load(file)
-- These may or may not exist, and that's ok. Do a -- These may or may not exist, and that's ok. Do a
-- silent parse so that we complain on parse errors but -- silent parse so that we complain on parse errors but
-- not for them simply not existing. -- not for them simply not existing.
if not config.parse(name, true) then if not config.processFile(name, true) then
print("Failed to parse configuration: '" .. print("Failed to parse configuration: '" ..
name .. "'") name .. "'")
end end