fix: override plugins list

This commit is contained in:
DDDHuang 2022-03-07 10:32:49 +08:00
parent 7884238073
commit fbd70b02bc
1 changed files with 12 additions and 17 deletions

View File

@ -228,26 +228,21 @@ with_loaded_file(File, SuccFun) ->
end. end.
filter_plugins(Names) -> filter_plugins(Names) ->
Filter = filter_plugins(Names, []).
fun
({Name, true}) when is_atom(Name) ->
{true, Name};
(Name) when is_atom(Name) ->
{true, Name};
(_) ->
false
end,
filter_plugins(lists:filtermap(Filter, Names), []).
filter_plugins([], Plugins) -> filter_plugins([], Plugins) ->
lists:reverse(Plugins); lists:reverse(Plugins);
filter_plugins([Name | Names], Plugins) -> filter_plugins([{Name, Load} | Names], Plugins) ->
case lists:member(Name, Plugins) of case {Load, lists:member(Name, Plugins)} of
true -> {true, false} ->
filter_plugins(Names, Plugins); filter_plugins(Names, [Name | Plugins]);
false -> {false, true} ->
filter_plugins(Names, [Name | Plugins]) filter_plugins(Names, Plugins -- [Name]);
end. _ ->
filter_plugins(Names, Plugins)
end;
filter_plugins([Name | Names], Plugins) when is_atom(Name) ->
filter_plugins([{Name, true} | Names], Plugins).
load_plugins(Names, Persistent) -> load_plugins(Names, Persistent) ->
Plugins = list(), Plugins = list(),