diff --git a/src/rebar.erl b/src/rebar.erl index c00191d..74812f5 100644 --- a/src/rebar.erl +++ b/src/rebar.erl @@ -29,26 +29,6 @@ -export([main/1]). main(Args) -> - %% HACK: Make sure the caller is running w/ r13b03 and reltool >= 0.5.2 - case erlang:system_info(version) < "5.7.4" of - true -> - io:format("Rebar requires at least erts 5.7.4; this VM is using ~s\n", - [erlang:system_info(version)]), - halt(1); - false -> - ok - end, - - ReltoolVsn = filename:basename(code:lib_dir(reltool)), - case ReltoolVsn < "reltool-0.5.2" of - true -> - io:format("Rebar requires at least reltool-0.5.2; this VM is using ~s\n", - [ReltoolVsn]), - halt(1); - false -> - ok - end, - case catch(rebar_core:run(Args)) of ok -> ok; diff --git a/src/rebar_reltool.erl b/src/rebar_reltool.erl index f427831..23b4146 100644 --- a/src/rebar_reltool.erl +++ b/src/rebar_reltool.erl @@ -38,6 +38,9 @@ %% =================================================================== generate(Config, ReltoolFile) -> + %% Make sure we have decent version of reltool available + check_vsn(), + %% Load the reltool configuration from the file ReltoolConfig = load_config(ReltoolFile), @@ -72,6 +75,21 @@ clean(_Config, ReltoolFile) -> %% Internal functions %% =================================================================== +check_vsn() -> + case code:lib_dir(reltool) of + {error, bad_name} -> + ?ABORT("Reltool support requires the reltool application to be installed!", []); + Path -> + ReltoolVsn = filename:basename(Path), + case ReltoolVsn < "reltool-0.5.2" of + true -> + ?ABORT("Reltool support requires at least reltool-0.5.2; this VM is using ~s\n", + [ReltoolVsn]); + false -> + ok + end + end. + %% %% Load terms from reltool.config %%