소스 검색

Use a more appropriate method to check reltool's vsn

If running e.g. rebar generate using an OTP development build,
rebar will complain that reltool has the version "", which is
less than the required "0.5.2". This is because rebar_reltool
simply checks the path returned by code:which(reltool), which
doesn't yield version information if used in a development build.

This patch substitutes a more robust method (load reltool and
fetch the info from application:loaded_applications()).

As it happens, this will not be enough to make things work,
but now Reltool will explain that it cannot generate a spec
from a system that is not installed, giving a better hint
as to what needs to be done.
pull/3/head
Ulf Wiger 12 년 전
committed by Tuncer Ayaz
부모
커밋
6996cd4fcc
1개의 변경된 파일14개의 추가작업 그리고 13개의 파일을 삭제
  1. +14
    -13
      src/rebar_reltool.erl

+ 14
- 13
src/rebar_reltool.erl 파일 보기

@ -81,19 +81,20 @@ clean(Config, ReltoolFile) ->
%% ===================================================================
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
application:load(reltool),
ReltoolVsn =
case lists:keysearch(reltool, 1, application:loaded_applications()) of
{value, {_, _, V}} ->
V;
_ ->
""
end,
case ReltoolVsn < "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.
process_overlay(ReltoolConfig) ->

불러오는 중...
취소
저장