summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rebar_prv_clean.erl25
-rw-r--r--src/rebar_prv_compile.erl2
2 files changed, 24 insertions, 3 deletions
diff --git a/src/rebar_prv_clean.erl b/src/rebar_prv_clean.erl
index 72b85dc..88587a1 100644
--- a/src/rebar_prv_clean.erl
+++ b/src/rebar_prv_clean.erl
@@ -27,18 +27,39 @@ init(State) ->
{example, "rebar clean"},
{short_desc, "Remove compiled beam files from apps."},
{desc, ""},
- {opts, []}])),
+ {opts, [{all, $a, "all", undefined, "Clean all apps include deps"}]}])),
{ok, State1}.
-spec do(rebar_state:t()) -> {ok, rebar_state:t()} | {error, string()}.
do(State) ->
ProjectApps = rebar_state:project_apps(State),
+ {all, All} = handle_args(State),
+
+ Apps = case All of
+ true ->
+ DepsDir = rebar_state:get(State, deps_dir, ?DEFAULT_DEPS_DIR),
+ DepApps = rebar_app_discover:find_apps([DepsDir], all),
+ ProjectApps ++ DepApps;
+ false ->
+ ProjectApps
+ end,
+
lists:foreach(fun(AppInfo) ->
?INFO("Cleaning out ~s...~n", [rebar_app_info:name(AppInfo)]),
rebar_erlc_compiler:clean(State, ec_cnv:to_list(rebar_app_info:dir(AppInfo)))
- end, ProjectApps),
+ end, Apps),
+
{ok, State}.
-spec format_error(any(), rebar_state:t()) -> {iolist(), rebar_state:t()}.
format_error(Reason, State) ->
{io_lib:format("~p", [Reason]), State}.
+
+%% ===================================================================
+%% Internal functions
+%% ===================================================================
+
+handle_args(State) ->
+ {Args, _} = rebar_state:command_parsed_args(State),
+ All = proplists:get_value(all, Args, false),
+ {all, All}.
diff --git a/src/rebar_prv_compile.erl b/src/rebar_prv_compile.erl
index b5beca9..288a260 100644
--- a/src/rebar_prv_compile.erl
+++ b/src/rebar_prv_compile.erl
@@ -31,7 +31,7 @@ init(State) ->
{short_desc, "Compile apps .app.src and .erl files."},
{desc, ""},
{opts, [
- {jobs, $j, "jobs", integer, JobsHelp}
+ {jobs, $j, "jobs", integer, JobsHelp}
]}])),
{ok, State1}.