aboutsummaryrefslogtreecommitdiffstats
path: root/src/relcool.app.src.script
blob: 381e7dcc2ee03303e1aa2d25108d1f3911f67044 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
%% -*- 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}].