|
|
@@ -4,7 +4,7 @@ defmodule Toy.MixProject do
|
|
|
def project do
|
|
|
[
|
|
|
app: :toy,
|
|
|
- version: "0.1.0",
|
|
|
+ version: from_file(),
|
|
|
elixir: "~> 1.7",
|
|
|
elixirc_paths: elixirc_paths(Mix.env()),
|
|
|
compilers: [:phoenix, :gettext] ++ Mix.compilers(),
|
|
|
@@ -61,7 +61,19 @@ defmodule Toy.MixProject do
|
|
|
setup: ["deps.get", "ecto.setup", "cmd npm install --prefix assets"],
|
|
|
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
|
|
|
"ecto.reset": ["ecto.drop", "ecto.setup"],
|
|
|
- test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"]
|
|
|
+ test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"],
|
|
|
+ version: ["run -e \"Mix.Project.config[:version] |> IO.puts\""]
|
|
|
]
|
|
|
end
|
|
|
+
|
|
|
+ defp from_file(file \\ "VERSION") do
|
|
|
+ with {:ok, described} <- File.read(file),
|
|
|
+ {:ok, version} <- described |> String.trim() |> to_semver_string() do
|
|
|
+ version
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ defp to_semver_string(described) when is_binary(described) do
|
|
|
+ with {:ok, _} <- described |> Version.parse(), do: {:ok, described}
|
|
|
+ end
|
|
|
end
|