Fix read plugin configuration not find schema file

This commit is contained in:
turtled 2017-09-08 23:23:48 +08:00
parent 7260b17cb5
commit 85f9a8cb70
1 changed files with 22 additions and 17 deletions

View File

@ -90,20 +90,25 @@ get(App, Par, Def) ->
read_(App) ->
Configs = emqttd_cli_config:read_config(App),
Path = lists:concat([code:priv_dir(App), "/", App, ".schema"]),
{_, Mappings, _} = cuttlefish_schema:files([Path]),
OptionalCfg = lists:foldl(fun(Map, Acc) ->
Key = cuttlefish_mapping:variable(Map),
case proplists:get_value(Key, Configs) of
undefined ->
[{cuttlefish_variable:format(Key), "", cuttlefish_mapping:doc(Map), false} | Acc];
_ -> Acc
end
end, [], Mappings),
RequiredCfg = lists:foldl(fun({Key, Val}, Acc) ->
case lists:keyfind(Key, 2, Mappings) of
false -> Acc;
Map ->
[{cuttlefish_variable:format(Key), Val, cuttlefish_mapping:doc(Map), true} | Acc]
end
end, [], Configs),
RequiredCfg ++ OptionalCfg.
case filelib:is_file(Path) of
false ->
[];
true ->
{_, Mappings, _} = cuttlefish_schema:files([Path]),
OptionalCfg = lists:foldl(fun(Map, Acc) ->
Key = cuttlefish_mapping:variable(Map),
case proplists:get_value(Key, Configs) of
undefined ->
[{cuttlefish_variable:format(Key), "", cuttlefish_mapping:doc(Map), false} | Acc];
_ -> Acc
end
end, [], Mappings),
RequiredCfg = lists:foldl(fun({Key, Val}, Acc) ->
case lists:keyfind(Key, 2, Mappings) of
false -> Acc;
Map ->
[{cuttlefish_variable:format(Key), Val, cuttlefish_mapping:doc(Map), true} | Acc]
end
end, [], Configs),
RequiredCfg ++ OptionalCfg
end.