Packages

Mix task that wraps any Elixir Mix project generator in a devenv.sh Nix environment

Current section

Files

Jump to
devenv_new mix.exs
Raw

mix.exs

defmodule DevenvNew.MixProject do
use Mix.Project
def project do
[
app: :devenv_new,
version: "0.2.4",
elixir: "~> 1.16",
start_permanent: Mix.env() == :prod,
consolidate_protocols: Mix.env() != :dev,
deps: deps(),
aliases: aliases(),
elixirc_paths: elixirc_paths(Mix.env()),
description: description(),
package: package(),
name: "devenv_new",
docs: docs()
]
end
defp description,
do: "Mix task that wraps any Elixir Mix project generator in a devenv.sh Nix environment"
defp elixirc_paths(:test), do: ["lib", "test/fixtures"]
defp elixirc_paths(_), do: ["lib"]
defp docs do
[
main: "readme",
assets: %{"docs/assets" => "assets"},
extras: [
"README.md"
],
formatters: ["html"]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.27", only: :dev, runtime: false},
{:igniter, "~> 0.5", only: :dev, optional: true},
{:deps_changelog, "~> 0.3", only: :dev, optional: true, runtime: false}
]
end
defp aliases do
[
ci: [
"format --check-formatted",
"deps.unlock --check-unused",
"credo",
# Order might be important,
# see https://elixirforum.com/t/cant-run-hex-mix-tasks-in-alias/65649/13
fn _ -> Mix.ensure_application!(:hex) end,
"hex.audit"
],
# Mainly for testing deps_changelog and Igniter
update: [
# Isolated processes/Mix runners seem to work best when shuffling deps
"cmd mix deps.changelog --before",
"cmd mix deps.update igniter",
"cmd mix igniter.upgrade --all",
"cmd mix deps.changelog --after",
fn _args ->
Mix.shell().info(
"Run `mix igniter.apply_upgrades igniter:old_version:new_version` to finish igniter update!"
)
end
]
]
end
defp package do
[
name: "devenv_new",
maintainers: ["Steffen Beyer"],
licenses: ["0BSD"],
links: %{
"Changelog" => "https://github.com/serpent213/devenv_new/blob/master/CHANGELOG.md",
"GitHub" => "https://github.com/serpent213/devenv_new"
}
]
end
end