%% -*- mode: Erlang; erlang-indent-level: 4; indent-tabs-mode: nil; fill-column: 80 -*- [{application, AppName, Details0}] = CONFIG, %% Get the tag timestamp and minimal ref from the system. The %% timestamp is really important from an ordering perspective. {ok, RawRef} = rebar_utils:sh("git log -n 1 --pretty=format:'%ct.%h\n' .", []), {ok, RawTag} = rebar_utils:sh("git describe --always --abbrev=0 --tags " "`git log -n 1 --pretty=format:%h .`", []), %% Cleanup the tag and the Ref information. Basically leading 'v's and %% whitespace needs to go away. Tag = re:replace(RawTag, "(^v)|\\s", "", [global]), Ref = re:replace(RawRef, "\\s", "", [global]), %% Create the valid [semver](http://semver.org) version from the tag Vsn = erlang:binary_to_list(erlang:iolist_to_binary([Tag, "+build.", Ref])), %% Replace the old version with the new one Details1 = lists:keyreplace(vsn, 1, Details0, {vsn, Vsn}), [{application, AppName, Details1}].