From bc35777bae4f66ddd1afade51d3c158cd6973c83 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 12 Sep 2012 16:58:11 -0500 Subject: support incremental 'build versions' according to semver specs --- src/relcool.app.src.script | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/relcool.app.src.script (limited to 'src/relcool.app.src.script') diff --git a/src/relcool.app.src.script b/src/relcool.app.src.script new file mode 100644 index 0000000..381e7dc --- /dev/null +++ b/src/relcool.app.src.script @@ -0,0 +1,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}]. -- cgit v1.2.3