Add support for embedding VCS info into the version data

This commit is contained in:
Dave Smith 2010-06-22 13:47:06 -06:00
parent 518d30d7ad
commit 02bc52fc6a
2 changed files with 10 additions and 2 deletions

View file

@ -6,6 +6,9 @@ main(Args) ->
%% Get a string repr of build time
Built = build_time(),
%% Get a string repr of hg changeset
HgInfo = "hg " ++ string:strip(os:cmd("hg identify -i"), both, $\n),
%% Check for force=1 flag to force a rebuild
case lists:member("force=1", Args) of
true ->
@ -17,7 +20,8 @@ main(Args) ->
%% Compile all src/*.erl to ebin
case make:files(filelib:wildcard("src/*.erl"), [{outdir, "ebin"}, {i, "include"},
{d, 'BUILD_TIME', Built}]) of
{d, 'BUILD_TIME', Built},
{d, 'VCS_INFO', HgInfo}]) of
up_to_date ->
ok;
error ->

View file

@ -38,6 +38,10 @@
-define(BUILD_TIME, "undefined").
-endif.
-ifndef(VCS_INFO).
-define(VCS_INFO, "undefined").
-endif.
%% ===================================================================
%% Public API
%% ===================================================================
@ -231,7 +235,7 @@ version Show version information
%%
version() ->
{ok, Vsn} = application:get_key(rebar, vsn),
?CONSOLE("Version ~s built ~s\n", [Vsn, ?BUILD_TIME]).
?CONSOLE("rebar version: ~s date: ~s vcs: ~s\n", [Vsn, ?BUILD_TIME, ?VCS_INFO]).
%%
%% options accepted via getopt