summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rebar_dir.erl7
-rw-r--r--test/rebar_as_SUITE.erl25
2 files changed, 27 insertions, 5 deletions
diff --git a/src/rebar_dir.erl b/src/rebar_dir.erl
index fd80fa7..628ebd3 100644
--- a/src/rebar_dir.erl
+++ b/src/rebar_dir.erl
@@ -23,7 +23,12 @@
-spec base_dir(rebar_state:t()) -> file:filename_all().
base_dir(State) ->
Profiles = rebar_state:current_profiles(State),
- ProfilesStrings = [ec_cnv:to_list(P) || P <- Profiles],
+ ProfilesStrings = case [ec_cnv:to_list(P) || P <- Profiles] of
+ ["default"] -> ["default"];
+ %% drop `default` from the profile dir if it's implicit and reverse order
+ %% of profiles to match order passed to `as`
+ ["default"|Rest] -> lists:reverse(Rest)
+ end,
ProfilesDir = string:join(ProfilesStrings, "+"),
filename:join(rebar_state:get(State, base_dir, ?DEFAULT_BASE_DIR), ProfilesDir).
diff --git a/test/rebar_as_SUITE.erl b/test/rebar_as_SUITE.erl
index 5566c98..ab70081 100644
--- a/test/rebar_as_SUITE.erl
+++ b/test/rebar_as_SUITE.erl
@@ -9,7 +9,8 @@
as_multiple_profiles/1,
as_multiple_tasks/1,
as_multiple_profiles_multiple_tasks/1,
- as_comma_placement/1]).
+ as_comma_placement/1,
+ as_dir_name/1]).
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
@@ -22,10 +23,11 @@ init_per_suite(Config) -> Config.
end_per_suite(_Config) -> ok.
init_per_testcase(_, Config) ->
- rebar_test_utils:init_rebar_state(Config, "do_as_").
+ rebar_test_utils:init_rebar_state(Config, "as_").
all() -> [as_basic, as_multiple_profiles, as_multiple_tasks,
- as_multiple_profiles_multiple_tasks].
+ as_multiple_profiles_multiple_tasks, as_comma_placement,
+ as_dir_name].
as_basic(Config) ->
AppDir = ?config(apps, Config),
@@ -78,7 +80,7 @@ as_multiple_profiles_multiple_tasks(Config) ->
as_comma_placement(Config) ->
AppDir = ?config(apps, Config),
- Name = rebar_test_utils:create_random_name("do_as_crazy_"),
+ Name = rebar_test_utils:create_random_name("as_comma_placement_"),
Vsn = rebar_test_utils:create_random_vsn(),
rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
@@ -86,3 +88,18 @@ as_comma_placement(Config) ->
[],
["as", "foo,bar", ",", "baz", ",qux", "compile"],
{ok, [{app, Name}]}).
+
+as_dir_name(Config) ->
+ AppDir = ?config(apps, Config),
+
+ Name = rebar_test_utils:create_random_name("as_dir_name_"),
+ Vsn = rebar_test_utils:create_random_vsn(),
+ rebar_test_utils:create_app(AppDir, Name, Vsn, [kernel, stdlib]),
+
+ rebar_test_utils:run_and_check(Config,
+ [],
+ ["as", "foo,bar,baz", "compile"],
+ {ok, [{app, Name}]}),
+
+ true = filelib:is_dir(filename:join([AppDir, "_build", "foo+bar+baz"])).
+