1defmodule Comet.MixProject do
2 use Mix.Project
3
4 def project do
5 [
6 app: :comet,
7 version: "0.1.0",
8 elixir: "~> 1.14",
9 elixirc_paths: elixirc_paths(Mix.env()),
10 start_permanent: Mix.env() == :prod,
11 aliases: aliases(),
12 deps: deps()
13 ]
14 end
15
16 # Configuration for the OTP application.
17 #
18 # Type `mix help compile.app` for more information.
19 def application do
20 [
21 mod: {Comet.Application, []},
22 extra_applications: [:logger, :runtime_tools]
23 ]
24 end
25
26 # Specifies which paths to compile per environment.
27 defp elixirc_paths(:test), do: ["lib", "test/support"]
28 defp elixirc_paths(_), do: ["lib"]
29
30 # Specifies your project dependencies.
31 #
32 # Type `mix help deps` for examples and options.
33 defp deps do
34 [
35 {:phoenix, "~> 1.7.21"},
36 {:phoenix_ecto, "~> 4.5"},
37 {:ecto_sql, "~> 3.10"},
38 {:postgrex, ">= 0.0.0"},
39 {:phoenix_live_dashboard, "~> 0.8.3"},
40 {:telemetry_metrics, "~> 1.0"},
41 {:telemetry_poller, "~> 1.0"},
42 {:jason, "~> 1.2"},
43 {:dns_cluster, "~> 0.1.1"},
44 {:bandit, "~> 1.5"},
45 {:lexgen, "~> 1.0.0", only: [:dev]},
46 {:req, "~> 0.5.0"},
47 {:credo, "~> 1.7", only: [:dev, :test], runtime: false},
48 {:drinkup, "~> 0.1"},
49 {:typedstruct, "~> 0.5"}
50 ]
51 end
52
53 # Aliases are shortcuts or tasks specific to the current project.
54 # For example, to install project dependencies and perform other setup tasks, run:
55 #
56 # $ mix setup
57 #
58 # See the documentation for `Mix` for more info on aliases.
59 defp aliases do
60 lexicon_paths = Path.wildcard("../../packages/lexicons/defs/**/*.json")
61
62 [
63 setup: ["deps.get", "ecto.setup"],
64 "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
65 "ecto.reset": ["ecto.drop", "ecto.setup"],
66 test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"],
67 "gen.lexicons": ["lexgen" | lexicon_paths] |> Enum.join(" ")
68 ]
69 end
70end