Packages
version_tasks
0.8.3
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 FnExpr
@shortdoc "The next version of your project, provide major, minor or patch as input"
def run(args) do
args
|> calc
|> IO.puts
end
@shortdoc "Calculate the next version of your project, provide major, minor or patch as input"
def calc([]), do: calc(["patch"])
def calc([mode]) do
Mix.Project.config[:version]
|> 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