version generation

This commit is contained in:
Alex S 2019-06-15 12:02:21 +08:00
parent 62ffc00a5d
commit baf58c1234
1 changed files with 16 additions and 4 deletions

20
mix.exs
View File

@ -176,7 +176,9 @@ defp version(version) do
ahead <- String.replace(describe, tag, "") do
{String.replace_prefix(tag, "v", ""), if(ahead != "", do: String.trim(ahead))}
else
_ -> {nil, nil}
_ ->
{commit_hash, 0} = System.cmd("git", ["rev-parse", "--short", "HEAD"])
{nil, "-g" <> String.trim(commit_hash)}
end
if git_tag && version != git_tag do
@ -203,8 +205,18 @@ defp version(version) do
string -> "+" <> string
end).()
[version, git_pre_release, build]
|> Enum.filter(fn string -> string && string != "" end)
|> Enum.join()
branch_name =
with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]),
true <- branch_name != "master" do
"-" <> String.trim(branch_name)
end
full_version =
[version, git_pre_release, branch_name, build]
|> Enum.filter(fn string -> string && string != "" end)
|> Enum.join()
Mix.shell().info("Project version: #{full_version}")
full_version
end
end