Current section

Files

Jump to
nerves lib mix tasks nerves.loadpaths.ex
Raw

lib/mix/tasks/nerves.loadpaths.ex

# SPDX-FileCopyrightText: 2022 Jon Carstens
# SPDX-FileCopyrightText: 2025 Frank Hunleth
#
# SPDX-License-Identifier: Apache-2.0
#
defmodule Mix.Tasks.Nerves.Loadpaths do
@moduledoc false
use Mix.Task
import Mix.Nerves.IO
@impl Mix.Task
def run(_args) do
task = List.first(System.argv())
if System.get_env("NERVES_PRECOMPILE") != "1" and task != "nerves.system.shell" do
debug_info("Loadpaths Start")
Mix.Task.run("nerves.precompile", ["--no-loadpaths"])
try do
nerves_env_info()
Mix.Task.run("nerves.env", [])
Nerves.Env.bootstrap()
Mix.Project.clear_deps_cache()
env_info()
rescue
e ->
reraise e, __STACKTRACE__
end
debug_info("Loadpaths End")
end
end
defp env(k) do
case System.get_env(k) do
unset when unset == nil or unset == "" -> "unset"
set -> Path.relative_to_cwd(set)
end
end
defp env_info() do
debug_info("Environment Variable List", """
target: #{Mix.target()}
toolchain: #{env("NERVES_TOOLCHAIN")}
system: #{env("NERVES_SYSTEM")}
app: #{env("NERVES_APP")}
""")
end
end