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.