Merge branch 'lua-no-yaml' into 'main'

Properly deal with cases when there is no config yaml file at all

See merge request systemrescue/systemrescue-sources!209
This commit is contained in:
Gerd v. Egidy 2022-06-06 11:38:10 +00:00
commit e8cf327452
2 changed files with 14 additions and 1 deletions

View file

@ -49,6 +49,16 @@ function item_in_list(item, list)
return false
end
-- Ensure that the given scope exists in the config table, create it if not
function ensure_scope(cfg_table, scopename)
if (cfg_table == nil) or (type(cfg_table) ~= "table") then
cfg_table = { }
end
if (cfg_table[scopename] == nil) or (type(cfg_table[scopename]) ~= "table") then
cfg_table[scopename] = { }
end
end
-- Return the number of items in a table
function get_table_size(mytable)
size = 0
@ -279,12 +289,15 @@ for option, scope in pairs(cmdline_options) do
optresult = search_cmdline_option(option, false)
if optresult == true then
print("- Option '"..option.."' has been enabled on the boot command line")
ensure_scope(config, scope)
config[scope][option] = optresult
elseif optresult == false then
print("- Option '"..option.."' has been disabled on the boot command line")
ensure_scope(config, scope)
config[scope][option] = optresult
elseif optresult ~= nil then
print("- Option '"..option.."' has been defined as '"..optresult.."' on the boot command line")
ensure_scope(config, scope)
config[scope][option] = optresult
end
end

View file

@ -26,7 +26,7 @@ index 853652e..53215eb 100644
+ if [[ "${value}" == 'true' ]]; then
+ echo "Entry '.global.${curentry}' enabled in config: value='${value}'"
+ eval "${curentry}='y'"
+ elif [[ "${value}" == 'false' ]]; then
+ elif [[ "${value}" == 'false' ]] || [[ "${value}" == 'null' ]]; then
+ echo "Entry '.global.${curentry}' disabled in config: value='${value}'"
+ else
+ echo "ERROR: Found invalid value for '.global.${curentry}': value='${value}'"