diff options
author | Dave Smith <dizzyd@dizzyd.com> | 2010-04-28 13:02:51 -0600 |
---|---|---|
committer | Dave Smith <dizzyd@dizzyd.com> | 2010-04-28 13:02:51 -0600 |
commit | c28a16258cec1fac8471793b33f4183fa8f07df1 (patch) | |
tree | 1f23ad54481294d8c3e42ce52041ef72025d36bd | |
parent | f81cf34bb9d29c72cfdaba4cd0e64aafcf34d355 (diff) |
Add caching of app file
-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. |