From a89bc97ed82f453f522ba0006b4bacaa242038bd Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 2 Sep 2021 20:20:14 +0800 Subject: [PATCH] fix(config): don't write to override.conf if 'override_conf_file' is not set --- apps/emqx/src/emqx_config.erl | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/apps/emqx/src/emqx_config.erl b/apps/emqx/src/emqx_config.erl index ae41ee1a1..bd6e14e8e 100644 --- a/apps/emqx/src/emqx_config.erl +++ b/apps/emqx/src/emqx_config.erl @@ -258,12 +258,15 @@ init_load(SchemaMod, Conf) when is_list(Conf) orelse is_binary(Conf) -> init_load(SchemaMod, RawConf0) when is_map(RawConf0) -> ok = save_schema_mod_and_names(SchemaMod), %% override part of the input conf using emqx_override.conf - RawConf = maps:merge(RawConf0, maps:with(maps:keys(RawConf0), read_override_conf())), + RawConf = merge_with_override_conf(RawConf0), %% check and save configs {_AppEnvs, CheckedConf} = check_config(SchemaMod, RawConf), ok = save_to_config_map(maps:with(get_atom_root_names(), CheckedConf), maps:with(get_root_names(), RawConf)). +merge_with_override_conf(RawConf) -> + maps:merge(RawConf, maps:with(maps:keys(RawConf), read_override_conf())). + -spec check_config(module(), raw_config()) -> {AppEnvs, CheckedConf} when AppEnvs :: app_envs(), CheckedConf :: config(). check_config(SchemaMod, RawConf) -> @@ -348,13 +351,16 @@ save_to_config_map(Conf, RawConf) -> save_to_override_conf(undefined) -> ok; save_to_override_conf(RawConf) -> - FileName = emqx_override_conf_name(), - ok = filelib:ensure_dir(FileName), - case file:write_file(FileName, jsx:prettify(jsx:encode(RawConf))) of - ok -> ok; - {error, Reason} -> - logger:error("write to ~s failed, ~p", [FileName, Reason]), - {error, Reason} + case emqx_override_conf_name() of + undefined -> ok; + FileName -> + ok = filelib:ensure_dir(FileName), + case file:write_file(FileName, jsx:prettify(jsx:encode(RawConf))) of + ok -> ok; + {error, Reason} -> + logger:error("write to ~s failed, ~p", [FileName, Reason]), + {error, Reason} + end end. load_hocon_file(FileName, LoadType) -> @@ -366,7 +372,7 @@ load_hocon_file(FileName, LoadType) -> end. emqx_override_conf_name() -> - application:get_env(emqx, override_conf_file, "emqx_override.conf"). + application:get_env(emqx, override_conf_file, undefined). do_get(Type, KeyPath) -> Ref = make_ref(),