Packages
version_tasks
0.9.2
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/githooks/hexup.ex
defmodule Mix.Tasks.Githooks.Hexup do
use Mix.Task
@shortdoc "Install a githook to run mix hex.publish on a new release"
def run([]), do: run([""])
def run([passphrase]) do
filename = ".git/hooks/post-commit"
content = """
#!/bin/bash
MESSAGE=$(git log --format=%B -n 1 HEAD)
VERSION=$(echo $MESSAGE | grep "v[0-9]\\{1,\\}\\.[0-9]\\{1,\\}\\.[0-9]\\{1,\\}")
if [ "$VERSION" != "" ]; then
echo "================="
echo "HEX PUBLISH $VERSION"
echo "================="
mix version.tag
mix hex.publish <<EOF
#{passphrase}
Y
EOF
else
echo "Continue making the app awesome."
fi
"""
File.write!(filename, content)
:ok = File.chmod(filename, 0o755)
IO.puts "Installed #{filename}"
IO.puts "to automatically 'mix version.tag' & 'mix hex.publish'"
IO.puts "after a 'mix version.up'"
filename
end
end