Packages
nerves_bootstrap
0.7.0
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
@target System.get_env("MIX_TARGET") || "host"
Mix.shell().info([
:green,
"""
Mix environment
MIX_TARGET: #{@target}
MIX_ENV: #{Mix.env()}
""",
:reset
])
def project do
[
app: :<%= app_name %>,
version: "0.1.0",
elixir: "<%= elixir_req %>",
target: @target,
archives: [nerves_bootstrap: "~> <%= bootstrap_vsn %>"],<%= if in_umbrella do %>
deps_path: "../../deps/#{@target}",
build_path: "../../_build/#{@target}",
config_path: "../../config/config.exs",
lockfile: "../../mix.lock.#{@target}",<% else %>
deps_path: "deps/#{@target}",
build_path: "_build/#{@target}",
lockfile: "mix.lock.#{@target}",<% end %>
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
aliases: aliases(@target),
deps: deps()
]
end
# Run "mix help compile.app" to learn about applications.
def application, do: application(@target)
# Specify target specific application configurations
# It is common that the application start function will start and supervise
# applications which could cause the host to fail. Because of this, we only
# invoke <%= app_module %>.start/2 when running on a target.
def application("host") do
[extra_applications: [:logger]]
end
def application(_target) do
[mod: {<%= app_module %>.Application, []}, extra_applications: [:logger]]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[<%= nerves_dep %>] ++ deps(@target)
end
# Specify target specific dependencies
defp deps("host"), do: []
defp deps(target) do
[
{:shoehorn, "~> <%= shoehorn_vsn %>"},
{:nerves_runtime, "~> <%= runtime_vsn %>"}
] ++ system(target)
end
<%= for target <- targets do %>
defp system("<%= target %>"), do: [{:<%= "nerves_system_#{target}" %>, ">= 0.0.0", runtime: false}]
<% end %>
defp system(target), do: Mix.raise "Unknown MIX_TARGET: #{target}"
# We do not invoke the Nerves Env when running on the Host
defp aliases("host"), do: []
defp aliases(_target) do
[
# Add custom mix aliases here
]
|> Nerves.Bootstrap.add_aliases()
end
end