Packages
nerves_bootstrap
1.15.2
1.16.0
1.15.3
1.15.2
1.15.1
1.15.0
1.14.5
1.14.4
1.14.3
1.14.2
1.14.0
1.13.1
1.13.0
1.12.2
1.12.1
1.12.0
1.11.5
1.11.4
1.11.3
1.11.2
1.11.1
1.11.0
1.10.6
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.1
1.8.0
1.7.1
1.7.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.3
1.5.2
1.5.1
1.5.0
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.0
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.4
0.6.3
Nerves mix integration bootstrap and new project generator
Current section
Files
Jump to
Current section
Files
templates/new/mix.exs
defmodule <%= app_module %>.MixProject do
use Mix.Project
@app :<%= app_name %>
@version "0.1.0"
<%= if nerves_pack? do %> @all_targets <%= inspect(Enum.map(targets, &elem(&1, 0))) %>
<% end %>
def project do
[
app: @app,
version: @version,
elixir: "<%= elixir_req %>",
archives: [nerves_bootstrap: "~> <%= bootstrap_vsn %>"],<%= if in_umbrella do %>
deps_path: "../../deps",
build_path: "../../_build",
config_path: "../../config/config.exs",
lockfile: "../../mix.lock",<% end %>
listeners: listeners(Mix.target(), Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
releases: [{@app, release()}]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger, :runtime_tools],
mod: {<%= app_module %>.Application, []}
]
end
def cli do
[preferred_targets: [run: :host, test: :host]]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
# Dependencies for all targets
<%= nerves_dep %>,
{:shoehorn, "~> <%= shoehorn_vsn %>"},
{:ring_logger, "~> <%= ring_logger_vsn %>"},
{:toolshed, "~> <%= toolshed_vsn %>"},
# Allow Nerves.Runtime on host to support development, testing and CI.
# See config/host.exs for usage.
{:nerves_runtime, "~> <%= runtime_vsn %>"},<%= if nerves_pack? do %>
# Dependencies for all targets except :host
{:nerves_pack, "~> <%= nerves_pack_vsn %>", targets: @all_targets},<% end %>
# Dependencies for specific targets
# NOTE: It's generally low risk and recommended to follow minor version
# bumps to Nerves systems. Since these include Linux kernel and Erlang
# version updates, please review their release notes in case
# changes to your application are needed.
<%= Enum.map_join(targets, ",\n", &~s| {:nerves_system_#{elem(&1, 0)}, "~> #{elem(&1, 1)}", runtime: false, targets: :#{elem(&1, 0)}}|) %>
]
end
def release do
[
overwrite: true,
<%= if nerves_pack? do %> # Erlang distribution is not started automatically.
# See https://nerves-pack.hexdocs.pm/readme.html#erlang-distribution
<% end %> cookie: <%= if cookie do %>"<%= cookie %>"<% else %>"#{@app}_cookie"<% end %>,
include_erts: &Nerves.Release.erts/0,
steps: [&Nerves.Release.init/1, :assemble],
strip_beams: Mix.env() == :prod or [keep: ["Docs"]]
]
end
# Uncomment the following line if using Phoenix > 1.8.
# defp listeners(:host, :dev), do: [Phoenix.CodeReloader]
defp listeners(_, _), do: []
end