lualoader: Use cli_execute_unparsed for commands passed in via loader.conf

This applies to:
- exec
- [module]_before
- [module]_error
- [module]_after

Before this commit, these used loader.perform to execute them as a pure,
unsalted loader command. This means that they were not able to take
advantage of any Lua-salted loader commands, like boot and autoboot, or pure
Lua loader commands (functions attached to the 'cli' module).

They now have access to the full arsenal, just shy of being able to execute
arbitrary Lua.
This commit is contained in:
Kyle Evans 2018-03-07 18:37:04 +00:00
parent 4e6bbdd6fe
commit 9ab2d3c5f8
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330620

View File

@ -109,7 +109,7 @@ local pattern_table = {
{
str = "^%s*exec%s*=%s*\"([%w%s%p]-)\"%s*(.*)",
process = function(k, _)
if loader.perform(k) ~= 0 then
if cli_execute_unparsed(k) ~= 0 then
print(MSG_FAILEXEC:format(k))
end
end,
@ -290,25 +290,25 @@ function config.loadmod(mod, silent)
str = str .. k
end
if v.before ~= nil then
pstatus = loader.perform(v.before) == 0
pstatus = cli_execute_unparsed(v.before) == 0
if not pstatus and not silent then
print(MSG_FAILEXBEF:format(v.before, k))
end
status = status and pstatus
end
if loader.perform(str) ~= 0 then
if cli_execute_unparsed(str) ~= 0 then
if not silent then
print(MSG_FAILEXMOD:format(str))
end
if v.error ~= nil then
loader.perform(v.error)
cli_execute_unparsed(v.error)
end
status = false
end
if v.after ~= nil then
pstatus = loader.perform(v.after) == 0
pstatus = cli_execute_unparsed(v.after) == 0
if not pstatus and not silent then
print(MSG_FAILEXAF:format(v.after, k))
end