diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rebar_app_utils.erl | 20 | 
1 files changed, 13 insertions, 7 deletions
| diff --git a/src/rebar_app_utils.erl b/src/rebar_app_utils.erl index 7f48ffd..744af4c 100644 --- a/src/rebar_app_utils.erl +++ b/src/rebar_app_utils.erl @@ -85,11 +85,17 @@ app_vsn(AppFile) ->  %% ===================================================================  load_app_file(Filename) -> -    case file:consult(Filename) of -        {ok, [{application, AppName, AppData}]} -> -            {ok, AppName, AppData}; -        {error, Reason} -> -            {error, Reason}; -        Other -> -            {error, {unexpected_terms, Other}} +    case erlang:get({app_file, Filename}) of +        undefined -> +            case file:consult(Filename) of +                {ok, [{application, AppName, AppData}]} -> +                    erlang:put({app_file, Filename}, {AppName, AppData}), +                    {ok, AppName, AppData}; +                {error, Reason} -> +                    {error, Reason}; +                Other -> +                    {error, {unexpected_terms, Other}} +            end; +        {AppName, AppData} -> +            {ok, AppName, AppData}      end. | 
