Packages
nerves_bootstrap
1.0.0-rc.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
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_compiled?(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: #{Mix.Project.config()[:target] || "unset"}
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