소스 검색

bootstrap: fix and enhance VCS_INFO handling

* re-compile rebar.erl instead of rebar_core to define VCS_INFO
* append "-dirty" if vcs indicates unclean repo status
pull/3/head
Tuncer Ayaz 12 년 전
부모
커밋
e34b702423
1개의 변경된 파일13개의 추가작업 그리고 5개의 파일을 삭제
  1. +13
    -5
      bootstrap

+ 13
- 5
bootstrap 파일 보기

@ -7,15 +7,16 @@ main(Args) ->
Built = build_time(),
%% Get a string repr of first matching VCS changeset
VcsInfo = vcs_info([{hg, ".hg", "hg identify -i"},
{git, ".git", "git describe --always --tags"}]),
VcsInfo = vcs_info([{hg, ".hg", "hg identify -i", "hg status"},
{git, ".git", "git describe --always --tags",
"git status -s"}]),
%% Check for force=1 flag to force a rebuild
case lists:member("force=1", Args) of
true ->
rm("ebin/*.beam");
false ->
rm("ebin/rebar_core.beam")
rm("ebin/rebar.beam")
end,
%% Add check for debug flag
@ -93,10 +94,17 @@ build_time() ->
vcs_info([]) ->
"No VCS info available.";
vcs_info([{Id, Dir, Cmd} | Rest]) ->
vcs_info([{Id, Dir, VsnCmd, StatusCmd} | Rest]) ->
case filelib:is_dir(Dir) of
true ->
lists:concat([Id, " ", string:strip(os:cmd(Cmd), both, $\n)]);
Vsn = string:strip(os:cmd(VsnCmd), both, $\n),
Status = case string:strip(os:cmd(StatusCmd), both, $\n) of
[] ->
"";
_ ->
"-dirty"
end,
lists:concat([Id, " ", Vsn, Status]);
false ->
vcs_info(Rest)
end.

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