Packages
nerves_bootstrap
1.7.1
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/loadpaths.ex
defmodule Mix.Tasks.Nerves.Loadpaths do
use Mix.Task
import Mix.Nerves.IO
@moduledoc false
def run(_args) do
unless System.get_env("NERVES_PRECOMPILE") == "1" do
debug_info("Loadpaths Start")
case Code.ensure_loaded?(Nerves.Env) do
true ->
try do
nerves_env_info()
Mix.Task.run("nerves.env", [])
Nerves.Env.bootstrap()
clear_deps_cache()
env_info()
rescue
e ->
reraise e, System.stacktrace()
end
false ->
Mix.Task.run("nerves.precompile")
end
debug_info("Loadpaths End")
end
end
def env(k) do
case System.get_env(k) do
unset when unset == nil or unset == "" -> "unset"
set -> Path.relative_to_cwd(set)
end
end
def env_info do
debug_info("Environment Variable List", """
target: #{Nerves.Bootstrap.mix_target()}
toolchain: #{env("NERVES_TOOLCHAIN")}
system: #{env("NERVES_SYSTEM")}
app: #{env("NERVES_APP")}
""")
end
defp clear_deps_cache() do
if :erlang.function_exported(Mix.Project, :clear_deps_cache, 0) do
apply(Mix.Project, :clear_deps_cache, [])
else
if project = Mix.Project.get() do
key = {:cached_deps, Mix.env(), project}
Agent.cast(Mix.ProjectStack, &%{&1 | cache: Map.delete(&1.cache, key)})
end
end
end
end