diff --git a/apps/emqx/src/emqx_config.erl b/apps/emqx/src/emqx_config.erl index 63f142f85..88ba41bdf 100644 --- a/apps/emqx/src/emqx_config.erl +++ b/apps/emqx/src/emqx_config.erl @@ -158,7 +158,7 @@ load() -> %% the app env 'config_files' should be set before emqx get started. ConfFiles = application:get_env(emqx, config_files, []), RawRichConf = lists:foldl(fun(ConfFile, Acc) -> - Raw = load_hocon_file(ConfFile), + Raw = load_hocon_file(ConfFile, richmap), emqx_map_lib:deep_merge(Acc, Raw) end, #{}, ConfFiles), {_MappedEnvs, RichConf} = hocon_schema:map_translate(emqx_schema, RawRichConf, #{}), @@ -195,7 +195,7 @@ save_to_emqx_config(Conf, RawConf) -> -spec save_to_override_conf(config()) -> ok | {error, term()}. save_to_override_conf(Conf) -> FileName = emqx_override_conf_name(), - OldConf = load_hocon_file(FileName), + OldConf = load_hocon_file(FileName, map), MergedConf = maps:merge(OldConf, Conf), ok = filelib:ensure_dir(FileName), case file:write_file(FileName, jsx:prettify(jsx:encode(MergedConf))) of @@ -205,10 +205,10 @@ save_to_override_conf(Conf) -> {error, Reason} end. -load_hocon_file(FileName) -> +load_hocon_file(FileName, LoadType) -> case filelib:is_regular(FileName) of true -> - {ok, Raw0} = hocon:load(FileName, #{format => richmap}), + {ok, Raw0} = hocon:load(FileName, #{format => LoadType}), Raw0; false -> #{} end.