diff options
| -rw-r--r-- | src/rebar.app.src | 2 | ||||
| -rw-r--r-- | src/rebar_app_info.erl | 15 | ||||
| -rw-r--r-- | src/rebar_otp_app.erl | 14 | ||||
| -rw-r--r-- | test/rebar_pkg_alias_SUITE.erl | 3 | 
4 files changed, 28 insertions, 6 deletions
| diff --git a/src/rebar.app.src b/src/rebar.app.src index 4be8b76..74efe97 100644 --- a/src/rebar.app.src +++ b/src/rebar.app.src @@ -3,7 +3,7 @@  {application, rebar,   [{description, "Rebar: Erlang Build Tool"}, -  {vsn, "3.4.4"}, +  {vsn, "git"},    {modules, []},    {registered, []},    {applications, [kernel, diff --git a/src/rebar_app_info.erl b/src/rebar_app_info.erl index 050ccc1..de497d5 100644 --- a/src/rebar_app_info.erl +++ b/src/rebar_app_info.erl @@ -311,15 +311,22 @@ app_file(AppInfo=#app_info_t{}, AppFile) ->  app_details(AppInfo=#app_info_t{app_details=[]}) ->      case app_file(AppInfo) of          undefined -> -            rebar_file_utils:try_consult(app_file_src(AppInfo)); +            case rebar_config:consult_app_file(app_file_src(AppInfo)) of +                [] -> []; +                [{application, _Name, AppDetails}] -> AppDetails +            end;          AppFile -> -            try -                rebar_file_utils:try_consult(AppFile) +            try rebar_file_utils:try_consult(AppFile) of +                [] -> []; +                [{application, _Name, AppDetails}] -> AppDetails              catch                  throw:{error, {Module, Reason}} ->                      ?DEBUG("Warning, falling back to .app.src because of: ~ts",                            [Module:format_error(Reason)]), -                    rebar_file_utils:try_consult(app_file_src(AppInfo)) +                    case rebar_config:consult_app_file(app_file_src(AppInfo)) of +                        [] -> []; +                        [{application, _Name, AppDetails}] -> AppDetails +                    end              end      end;  app_details(#app_info_t{app_details=AppDetails}) -> diff --git a/src/rebar_otp_app.erl b/src/rebar_otp_app.erl index ed573f2..1bc33b9 100644 --- a/src/rebar_otp_app.erl +++ b/src/rebar_otp_app.erl @@ -117,8 +117,11 @@ preprocess(State, AppInfo, AppSrcFile) ->              %% without a 'registered' value.              A3 = ensure_registered(A2), +            %% some tools complain if a description is not present. +            A4 = ensure_description(A3), +              %% Build the final spec as a string -            Spec = io_lib:format("~p.\n", [{application, AppName, A3}]), +            Spec = io_lib:format("~p.\n", [{application, AppName, A4}]),              %% Setup file .app filename and write new contents              EbinDir = rebar_app_info:ebin_dir(AppInfo), @@ -195,6 +198,15 @@ ensure_registered(AppData) ->              AppData      end. +ensure_description(AppData) -> +    case lists:keyfind(description, 1, AppData) of +        false -> +            %% Required for releases to work. +            [{description, ""} | AppData]; +        {description, _} -> +            AppData +    end. +  %% In the case of *.app.src we want to give the user the ability to  %% dynamically script the application resource file (think dynamic version  %% string, etc.), in a way similar to what can be done with the rebar diff --git a/test/rebar_pkg_alias_SUITE.erl b/test/rebar_pkg_alias_SUITE.erl index 2b8ccd2..07656d0 100644 --- a/test/rebar_pkg_alias_SUITE.erl +++ b/test/rebar_pkg_alias_SUITE.erl @@ -166,6 +166,8 @@ mock_config(Name, Config) ->      {ChkFake, Etag} = create_lib(Name, Config, "fakelib"),      {ChkTop, _} = create_lib(Name, Config, "topdep"),      {ChkTrans, _} = create_lib(Name, Config, "transitive_app", "transitive"), +    ct:pal("{~p, _}",[ChkTop]), +    ct:pal("{~p, _}",[ChkTrans]),      Priv = ?config(priv_dir, Config),      TmpDir = filename:join([Priv, "tmp", atom_to_list(Name)]),      %% Add an alias for goodpkg -> fakelib by hand @@ -173,6 +175,7 @@ mock_config(Name, Config) ->      CacheRoot = filename:join([Priv, "cache", atom_to_list(Name)]),      CacheDir = filename:join([CacheRoot, "hex", "com", "test", "packages"]),      rebar_test_utils:create_app(AppDir, "fakelib", "1.0.0", [kernel, stdlib]), +    ct:pal("{~p, ~p}",[ChkFake, Etag]),      {ChkFake, Etag} = rebar_test_utils:package_app(AppDir, CacheDir, "goodpkg-1.0.0"),      Tid = ets:new(registry_table, [public]), | 
