From f4f96a356fcefaa2ad388eb5469c7da901846f21 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Fri, 19 Sep 2014 22:05:40 -0500 Subject: install plugins to plugins/ --- src/rebar_plugins.erl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/rebar_plugins.erl') diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl index 0fdbc6d..e9ab0b2 100644 --- a/src/rebar_plugins.erl +++ b/src/rebar_plugins.erl @@ -3,10 +3,17 @@ -module(rebar_plugins). --export([]). +-export([install/1]). -include("rebar.hrl"). %% =================================================================== %% Public API %% =================================================================== + +install(State) -> + BaseDir = rebar_state:get(State, base_dir, ""), + State1 = rebar_state:set(State, base_dir, "plugins"), + Plugins = rebar_state:get(State1, plugins, []), + {ok, State2} = rebar_prv_install_deps:handle_deps(State1, Plugins), + {ok, rebar_state:set(State2, base_dir, BaseDir)}. -- cgit v1.1 From 51f1cf4aae5a22fe8974edcdf10da4e8a7b05255 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 20 Sep 2014 09:01:03 -0500 Subject: install plugins to plugins/ --- src/rebar_plugins.erl | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/rebar_plugins.erl') diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl index e9ab0b2..3e51f7f 100644 --- a/src/rebar_plugins.erl +++ b/src/rebar_plugins.erl @@ -12,8 +12,26 @@ %% =================================================================== install(State) -> - BaseDir = rebar_state:get(State, base_dir, ""), - State1 = rebar_state:set(State, base_dir, "plugins"), + State1 = rebar_state:set(State, deps_dir, "plugins"), + Plugins = rebar_state:get(State1, plugins, []), {ok, State2} = rebar_prv_install_deps:handle_deps(State1, Plugins), - {ok, rebar_state:set(State2, base_dir, BaseDir)}. + + Apps = rebar_state:get(State2, all_deps), + lists:foreach(fun(AppInfo) -> + C = rebar_config:consult(rebar_app_info:dir(AppInfo)), + S = rebar_state:new(rebar_state:new(), C, rebar_app_info:dir(AppInfo)), + rebar_prv_compile:build(S, AppInfo) + end, Apps), + + PluginProviders = plugin_providers(Plugins), + {ok, PluginProviders, rebar_state:set(State2, deps_dir, ?DEFAULT_DEPS_DIR)}. + +plugin_providers(Plugins) -> + lists:map(fun({Plugin, _, _}) when is_atom(Plugin) -> + Plugin; + ({Plugin, _}) when is_atom(Plugin) -> + Plugin; + (Plugin) when is_atom(Plugin) -> + Plugin + end, Plugins). -- cgit v1.1 From 6f9ea13dd423d7ff0307265140496fb36c62d924 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 20 Sep 2014 09:08:24 -0500 Subject: move deps and plugins to _ prefixed --- src/rebar_plugins.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/rebar_plugins.erl') diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl index 3e51f7f..d8422d8 100644 --- a/src/rebar_plugins.erl +++ b/src/rebar_plugins.erl @@ -12,7 +12,7 @@ %% =================================================================== install(State) -> - State1 = rebar_state:set(State, deps_dir, "plugins"), + State1 = rebar_state:set(State, deps_dir, ?DEFAULT_PLUGINS_DIR), Plugins = rebar_state:get(State1, plugins, []), {ok, State2} = rebar_prv_install_deps:handle_deps(State1, Plugins), -- cgit v1.1 From 6c6480fa077065d1db77b78a49c79d9f6cf08035 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 20 Sep 2014 09:12:36 -0500 Subject: only compile invalid plugins --- src/rebar_plugins.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/rebar_plugins.erl') diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl index d8422d8..9fc0b23 100644 --- a/src/rebar_plugins.erl +++ b/src/rebar_plugins.erl @@ -18,11 +18,12 @@ install(State) -> {ok, State2} = rebar_prv_install_deps:handle_deps(State1, Plugins), Apps = rebar_state:get(State2, all_deps), + ToBuild = lists:dropwhile(fun rebar_app_info:valid/1, Apps), lists:foreach(fun(AppInfo) -> C = rebar_config:consult(rebar_app_info:dir(AppInfo)), S = rebar_state:new(rebar_state:new(), C, rebar_app_info:dir(AppInfo)), rebar_prv_compile:build(S, AppInfo) - end, Apps), + end, ToBuild), PluginProviders = plugin_providers(Plugins), {ok, PluginProviders, rebar_state:set(State2, deps_dir, ?DEFAULT_DEPS_DIR)}. -- cgit v1.1 From 1046f4c5d75965dec5e3155194e34540aadeddd0 Mon Sep 17 00:00:00 2001 From: Tristan Sloughter Date: Sat, 20 Sep 2014 09:58:35 -0500 Subject: handle no plugins as [] list of plugins --- src/rebar_plugins.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/rebar_plugins.erl') diff --git a/src/rebar_plugins.erl b/src/rebar_plugins.erl index 9fc0b23..b180ede 100644 --- a/src/rebar_plugins.erl +++ b/src/rebar_plugins.erl @@ -17,7 +17,7 @@ install(State) -> Plugins = rebar_state:get(State1, plugins, []), {ok, State2} = rebar_prv_install_deps:handle_deps(State1, Plugins), - Apps = rebar_state:get(State2, all_deps), + Apps = rebar_state:get(State2, all_deps, []), ToBuild = lists:dropwhile(fun rebar_app_info:valid/1, Apps), lists:foreach(fun(AppInfo) -> C = rebar_config:consult(rebar_app_info:dir(AppInfo)), -- cgit v1.1