diff options
-rw-r--r-- | src/rebar_git_resource.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/rebar_git_resource.erl b/src/rebar_git_resource.erl index 2fc1ba9..6405e46 100644 --- a/src/rebar_git_resource.erl +++ b/src/rebar_git_resource.erl @@ -194,10 +194,16 @@ parse_tags(Dir) -> {error, _} -> {undefined, "0.0.0"}; {ok, Line} -> - case re:run(Line, "(\\(|\\s)tag:\\s(v([^,\\)]+))", [{capture, [2, 3], list}]) of + case re:run(Line, "(\\(|\\s)(HEAD,\\s)tag:\\s(v?([^,\\)]+))", [{capture, [3, 4], list}]) of {match,[Tag, Vsn]} -> {Tag, Vsn}; nomatch -> - {undefined, "0.0.0"} + case rebar_utils:sh("git describe --tags", + [{use_stdout, false}, return_on_error, {cd, Dir}]) of + {error, _} -> + {undefined, "0.0.0"}; + {ok, LatestVsn} -> + {undefined, string:strip(LatestVsn, both, $\n)} + end end end. |