Packages

A Semver manager for making updates to your `mix.exs` versions.

Current section

Files

Jump to
semver_mgr lib mix tasks semver.ex
Raw

lib/mix/tasks/semver.ex

defmodule Mix.Tasks.Semver do
@moduledoc """
The semver mix task: `mix semver`
"""
use Mix.Task
@semver_line_rx ~r/version: "(\d+)\.(\d+)\.(\d+)(-.*)?",/
@shortdoc "Default task will report the semantic version."
def run(_) do
{:ok, data} = File.read("mix.exs")
[semver_line | _] = Regex.run(@semver_line_rx, data)
semver =
semver_line
|> String.replace("version: ", "")
|> String.replace("\"", "")
|> String.replace(",", "")
|> Version.parse!()
IO.puts("Current Version: #{semver}")
:ok
end
end