defmodule BoopErrorTracker.MixProject do use Mix.Project @version "1.1.0" @source_url "https://github.com/chrisgreg/boop_error_tracker" def project do [ app: :boop_error_tracker, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, deps: deps(), description: "Push ErrorTracker errors to your phone with Boop. Attaches to an existing ErrorTracker installation via telemetry.", package: package(), docs: docs(), name: "BoopErrorTracker", source_url: @source_url, elixirc_paths: elixirc_paths(Mix.env()) ] end def application do [ extra_applications: [:logger], mod: {BoopErrorTracker.Application, []} ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp deps do [ boop_ex_dep(), {:telemetry, "~> 1.0"}, # error_tracker is intentionally not a dependency: the host app installs it (~> 0.9) and # this package only listens to its telemetry events, so it never pulls Ecto/Phoenix in. {:plug, "~> 1.15", only: :test}, {:ex_doc, "~> 0.34", only: :dev, runtime: false} ] end # Until boop_ex is on Hex, `BOOP_EX_PATH=../boop_ex mix deps.get` uses the local checkout. defp boop_ex_dep do case System.get_env("BOOP_EX_PATH") do nil -> {:boop_ex, "~> 1.1"} path -> {:boop_ex, path: path} end end defp package do [ licenses: ["MIT"], links: %{ "GitHub" => @source_url, "Boop" => "https://github.com/chrisgreg/boop", "ErrorTracker" => "https://github.com/elixir-error-tracker/error-tracker" }, files: ~w(lib mix.exs README.md CHANGELOG.md LICENSE usage-rules.md) ] end defp docs do [ main: "readme", extras: ["README.md", "CHANGELOG.md", "usage-rules.md"], source_ref: "v#{@version}" ] end end