Packages
nerves_bootstrap
0.6.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 %>.Mixfile 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
# Configuration for the OTP application.
#
# Type `mix help compile.app` for more information.
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
# Dependencies can be Hex packages:
#
# {:my_dep, "~> 0.3.0"}
#
# Or git/path repositories:
#
# {:my_dep, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
#
# Type "mix help deps" for more examples and options
def deps do
[<%= nerves_dep %>] ++
deps(@target)
end
# Specify target specific dependencies
def deps("host"), do: []
def deps(target) do
[
{:bootloader, "~> <%= bootloader_vsn %>"},
{:nerves_runtime, "~> <%= runtime_vsn %>"}
] ++ system(target)
end
<%= for target <- targets do %>
def system("<%= target %>"), do: [{:<%= "nerves_system_#{target}" %>, ">= 0.0.0", runtime: false}]
<% end %>
def system(target), do: Mix.raise "Unknown MIX_TARGET: #{target}"
# We do not invoke the Nerves Env when running on the Host
def aliases("host"), do: []
def aliases(_target) do
["deps.precompile": ["nerves.precompile", "deps.precompile"],
"deps.loadpaths": ["deps.loadpaths", "nerves.loadpaths"]]
end
end