Selaa lähdekoodia

Fix read plugin configuration not find schema file

turtled 8 vuotta sitten
vanhempi
commit
85f9a8cb70
1 muutettua tiedostoa jossa 22 lisäystä ja 17 poistoa
  1. 22 17
      src/emqttd_config.erl

+ 22 - 17
src/emqttd_config.erl

@@ -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.