Current section
Files
Jump to
Current section
Files
lib/mix/tasks/release.ex
defmodule Mix.Tasks.Release do
@moduledoc false
use Mix.Task
alias Mix.Project
def run([level]) do
case level do
"patch" ->
IO.puts next_patch_level_version()
"minor" ->
IO.puts "Please implement me!"
"major" ->
IO.puts "Please implement me!"
_ ->
IO.puts "Sorry friend... The only sub commands I know are: patch, minor, and major"
end
end
def current_version do
Project.config[:version]
end
def version_bits(ver) do
String.split(ver, ".")
end
def current_version_bits do
version_bits(current_version())
end
def current_patch_level(ver_bits) do
ver_bits |> List.last |> String.to_integer
end
def next_patch_level(level) do
level + 1
end
def next_version(ver_bits, level) do
ver_bits |> List.replace_at(-1, "#{level}") |> Enum.join(".")
end
def next_patch_level_version do
bits = current_version_bits()
next = (current_patch_level(bits)) + 1
next_version(bits, next)
end
end