diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2015-03-03 16:31:38 -0500 |
---|---|---|
committer | Fred Hebert <mononcqc@ferd.ca> | 2015-03-03 16:31:38 -0500 |
commit | 5fb6bc680a153766184f1f4f9f30b5cc9484d98d (patch) | |
tree | dfffe5cd9ee4445a655a0784aa437922bdc07cac | |
parent | c43641654fe808dd4e6b49b9a770493db1c4e96b (diff) | |
parent | d72812cb5f0b7618c3c3678b6a4f357752a5bcac (diff) |
Merge pull request #210 from talentdeficit/shorter_build_dirs
shorter build dirs
-rw-r--r-- | src/rebar_dir.erl | 7 | ||||
-rw-r--r-- | test/rebar_as_SUITE.erl | 25 |
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"])). + |