Packages
nerves_bootstrap
1.10.3
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"
@all_targets <%= inspect(Enum.map(targets, &elem(&1, 0))) %>
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 %>
start_permanent: Mix.env() == :prod,
build_embedded: true,
deps: deps(),
releases: [{@app, release()}],
preferred_cli_target: [run: :host, test: :host]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
mod: {<%= app_module %>.Application, []},
extra_applications: [:logger, :runtime_tools]
]
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 %>"},
# Dependencies for all targets except :host
{:nerves_runtime, "~> <%= runtime_vsn %>", targets: @all_targets},<%= if nerves_pack? do %>
{: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://hexdocs.pm/nerves_pack/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
end