فهرست منبع

fix(config): write configs to emqx_override.conf failed

Shawn 4 سال پیش
والد
کامیت
0a3b77f65d
1فایلهای تغییر یافته به همراه4 افزوده شده و 4 حذف شده
  1. 4 4
      apps/emqx/src/emqx_config.erl

+ 4 - 4
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.