Selaa lähdekoodia

Merge pull request #76 from tsloughter/master

Small release fix and new plugin loading
pull/77/head
Tristan Sloughter 10 vuotta sitten
vanhempi
commit
faeb3d3989
4 muutettua tiedostoa jossa 21 lisäystä ja 16 poistoa
  1. +0
    -1
      src/rebar.app.src
  2. +19
    -13
      src/rebar_plugins.erl
  3. +1
    -1
      src/rebar_prv_release.erl
  4. +1
    -1
      src/rebar_prv_tar.erl

+ 0
- 1
src/rebar.app.src Näytä tiedosto

@ -21,7 +21,6 @@
%% Default log level %% Default log level
{log_level, warn}, {log_level, warn},
%% any_dir processing modules
{providers, [rebar_prv_as, {providers, [rebar_prv_as,
rebar_prv_clean, rebar_prv_clean,
rebar_prv_deps, rebar_prv_deps,

+ 19
- 13
src/rebar_plugins.erl Näytä tiedosto

@ -18,9 +18,9 @@ install(State) ->
DepsDir = rebar_dir:deps_dir(State1), DepsDir = rebar_dir:deps_dir(State1),
expand_plugins(DepsDir), expand_plugins(DepsDir),
Plugins = rebar_state:get(State1, plugins, []), Plugins = rebar_state:get(State1, plugins, []),
PluginProviders = rebar_utils:filtermap(fun(Plugin) ->
handle_plugin(Plugin, State1)
end, Plugins),
PluginProviders = lists:flatten(rebar_utils:filtermap(fun(Plugin) ->
handle_plugin(Plugin, State1)
end, Plugins)),
State2 = rebar_state:set(State1, deps_dir, OldDepsDir), State2 = rebar_state:set(State1, deps_dir, OldDepsDir),
{ok, PluginProviders, State2}. {ok, PluginProviders, State2}.
@ -55,16 +55,22 @@ plugin_providers(Plugin) when is_atom(Plugin) ->
validate_plugin(Plugin). validate_plugin(Plugin).
validate_plugin(Plugin) -> validate_plugin(Plugin) ->
Exports = sets:from_list(Plugin:module_info(exports)),
Required = sets:from_list([{init,1},
{do,1},
{format_error,1}]),
case sets:is_subset(Required, Exports) of
false ->
?WARN("Plugin ~p is not a provider. It will not be used.~n", [Plugin]),
false;
true ->
{true, Plugin}
application:load(Plugin),
case application:get_env(Plugin, providers) of
{ok, Providers} ->
{true, Providers};
undefined ->
Exports = sets:from_list(Plugin:module_info(exports)),
Required = sets:from_list([{init,1},
{do,1},
{format_error,1}]),
case sets:is_subset(Required, Exports) of
false ->
?WARN("Plugin ~p is not a provider. It will not be used.~n", [Plugin]),
false;
true ->
{true, Plugin}
end
end. end.
expand_plugins(Dir) -> expand_plugins(Dir) ->

+ 1
- 1
src/rebar_prv_release.erl Näytä tiedosto

@ -34,7 +34,7 @@ init(State) ->
do(State) -> do(State) ->
Options = rebar_state:command_args(State), Options = rebar_state:command_args(State),
DepsDir = rebar_dir:deps_dir(State), DepsDir = rebar_dir:deps_dir(State),
LibDirs = lists:usort(rebar_utils:filtermap(fun ec_file:exists/1, [DepsDir])),
LibDirs = lists:usort(rebar_utils:filtermap(fun ec_file:exists/1, [DepsDir | ?DEFAULT_PROJECT_APP_DIRS])),
OutputDir = filename:join(rebar_dir:base_dir(State), ?DEFAULT_RELEASE_DIR), OutputDir = filename:join(rebar_dir:base_dir(State), ?DEFAULT_RELEASE_DIR),
AllOptions = string:join(["release" | Options], " "), AllOptions = string:join(["release" | Options], " "),
try try

+ 1
- 1
src/rebar_prv_tar.erl Näytä tiedosto

@ -34,7 +34,7 @@ init(State) ->
do(State) -> do(State) ->
Options = rebar_state:command_args(State), Options = rebar_state:command_args(State),
DepsDir = rebar_dir:deps_dir(State), DepsDir = rebar_dir:deps_dir(State),
LibDirs = lists:usort(rebar_utils:filtermap(fun ec_file:exists/1, [DepsDir])),
LibDirs = lists:usort(rebar_utils:filtermap(fun ec_file:exists/1, [DepsDir | ?DEFAULT_PROJECT_APP_DIRS])),
OutputDir = filename:join(rebar_dir:base_dir(State), ?DEFAULT_RELEASE_DIR), OutputDir = filename:join(rebar_dir:base_dir(State), ?DEFAULT_RELEASE_DIR),
AllOptions = string:join(["release", "tar" | Options], " "), AllOptions = string:join(["release", "tar" | Options], " "),
case rebar_state:get(State, relx, []) of case rebar_state:get(State, relx, []) of

Ladataan…
Peruuta
Tallenna