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:
kevans 2018-03-07 18:37:04 +00:00
parent 6251eb9ea8
commit d334788f64

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