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
lib/mix/tasks/nerves/precompile.ex
defmodule Mix.Tasks.Nerves.Precompile do
use Mix.Task
import Mix.Nerves.IO
def run(_args) do
debug_info("Precompile Start")
# Note: We have to directly use the environment variable here instead of
# calling Nerves.Env.enabled?/0 because the nerves.precompile step happens
# before the nerves dependency is compiled, which is where Nerves.Env
# currently lives. This would be improved by moving Nerves.Env to
# nerves_bootstrap.
unless System.get_env("NERVES_ENV_DISABLED") do
System.put_env("NERVES_PRECOMPILE", "1")
Mix.Project.config()[:aliases]
|> check_aliases()
Mix.Tasks.Nerves.Env.run([])
parent = Mix.Project.config()[:app]
system_app = Nerves.Env.system().app
{m, f, a} =
if parent == system_app do
Mix.Tasks.Deps.Compile.run([Nerves.Env.toolchain().app, "--include-children"])
{Mix.Tasks.Compile, :run, [["--no-deps-check"]]}
else
system_app_name = to_string(system_app)
{Mix.Tasks.Deps.Compile, :run, [[system_app_name, "--include-children"]]}
end
apply(m, f, a)
Mix.Task.reenable("deps.compile")
Mix.Task.reenable("compile")
System.put_env("NERVES_PRECOMPILE", "0")
Mix.Task.rerun("nerves.loadpaths")
end
debug_info("Precompile End")
end
def check_aliases(aliases) do
deps_get = Keyword.get(aliases, String.to_atom("deps.get"), [])
unless Enum.member?(deps_get, "nerves.deps.get") do
Mix.raise("""
Nerves is missing an alias for \"deps.get\"
Please update nerves to the latest version:
mix deps.update nerves
Also update your mix.exs target aliases to:
defp aliases(_target) do
[
# Add custom mix aliases here
]
|> Nerves.Bootstrap.add_aliases()
end
""")
end
end
end