Packages
version_tasks
0.10.29
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.29
0.10.28
0.10.27
0.10.26
0.10.25
0.10.24
0.10.23
0.10.22
0.10.21
0.10.20
0.10.19
0.10.18
0.10.17
0.10.16
0.10.15
0.10.14
0.10.13
0.10.12
0.10.11
0.10.10
0.10.9
0.10.8
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.3
0.3.1
0.2.6
A suite of mix tasks for managing your libs version numbers with git and hex
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/next.ex
defmodule Mix.Tasks.Version.Next do
use Mix.Task
use VersionTasks.FnExpr
alias Mix.Tasks.Version.Current
@shortdoc "The next version (e.g v0.9.2)"
def run(args) do
args
|> calc
|> IO.puts
end
def calc([]), do: calc(["patch"])
def calc([mode]) do
Current.calc
|> String.split(".")
|> uptick(mode)
end
def uptick([major, minor, patch], "patch") do
{new_val, ""} = Integer.parse(patch)
"#{major}.#{minor}.#{new_val + 1}"
end
def uptick([major, minor, _patch], "minor") do
{new_val, ""} = Integer.parse(minor)
"#{major}.#{new_val + 1}.0"
end
def uptick([major, _minor, _patch], "major") do
{new_val, ""} = Integer.parse(major)
"#{new_val + 1}.0.0"
end
end