Current section
Files
Jump to
Current section
Files
torngen_elixir_client
mix.exs
mix.exs
defmodule TorngenElixirClient.MixProject do
use Mix.Project
def project do
[
name: "TorngenElixirClient",
description: "Autogenerated paths and schemas for Elixir from torngen",
app: :torngen_elixir_client,
version: version(),
elixir: "~> 1.16",
package: package(),
deps: deps(),
source_url: "https://github.com/Tornium/torngen_elixir_client",
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:torngen, "~> 0.1", runtime: false},
{:ex_doc, "~> 0.34", only: :dev, runtime: false, optional: true},
{:req, "~> 0.5", only: :test}
]
end
def docs do
[
main: "readme",
extras: ["README.md", "LICENSE.md"],
nest_modules_by_prefix: [Torngen.Client.Path, Torngen.Client.Schema]
]
end
def package do
[
name: "torngen_elixir_client",
description: "Autogenerated paths and schemas for Elixir from torngen",
files: ["lib", "mix.exs", "README.md", "LICENSE.md"],
maintainers: ["tiksan"],
licenses: ["Apache-2.0"],
links: %{"GitHub" => "https://github.com/Tornium/torngen_elixir_client"}
]
end
defp version do
case :file.consult(~c"hex_metadata.config") do
{:ok, data} ->
{"version", version} = List.keyfind(data, "version", 0)
version
_ ->
version =
case System.cmd("git", ~w[describe --tags --abbrev=0 --dirty=+dirty]) do
{version, 0} ->
version
|> String.trim()
|> String.slice(1..-1//1)
{_, code} ->
Mix.shell().error("Git exited with code #{code}, falling back to 0.0.0")
"0.0.0"
end
case Version.parse(version) do
{:ok, %Version{pre: ["pre" <> _ | _]} = version} ->
to_string(version)
{:ok, %Version{pre: []} = version} ->
to_string(version)
{:ok, %Version{patch: patch, pre: pre} = version} ->
to_string(%{version | patch: patch + 1, pre: ["dev" | pre]})
:error ->
Mix.shell().error("Failed to parse #{version}, falling back to 0.0.0")
"0.0.0"
end
end
end
end