Packages
nerves
0.4.0-rc.0
1.15.0
1.14.3
1.14.2
1.14.1
1.14.0
1.13.2
1.13.1
1.13.0
1.12.0
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.3
1.9.2
retired
1.9.1
1.9.0
1.8.0
1.7.17
1.7.16
1.7.15
1.7.14
retired
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
retired
1.7.1
retired
1.7.0
retired
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.5
1.4.4
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.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.11.0
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.4.0-rc.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
Craft and deploy bulletproof embedded software
Current section
Files
Jump to
Current section
Files
lib/nerves/release.ex
defmodule ReleaseManager.Plugin.Nerves do
use ReleaseManager.Plugin
@system_libs "/staging/usr/lib/erlang/lib"
def before_release(%Config{version: version} = config) do
case System.get_env("NERVES_SYSTEM") do
nil -> config
system ->
info "Modifying release for Nerves System #{Mix.Project.config[:target]}"
relx_config = config.relx_config
vm_args_file = 'releases/#{version}/vm.args'
vm_args =
relx_config[:overlay]
|> Enum.find(fn(
{_, _, ^vm_args_file}) -> true
_ -> false
end)
overlay =
case vm_args do
nil ->
default_vm_args =
Mix.Project.deps_paths[:nerves]
|> Path.join("template/_iex.vm.args")
|> String.to_char_list
[{:copy, default_vm_args, vm_args_file} | relx_config[:overlay]]
_ -> relx_config[:overlay]
end
relx_config
|> Enum.reject(fn
{:include_erts, _} -> true
{:system_libs, _} -> true
{:overlay, _} -> true
_ -> false
end)
system_libs = String.to_char_list(Path.join(system, @system_libs))
relx_config = [{:include_erts, false} | relx_config]
relx_config = [{:system_libs, system_libs} | relx_config]
relx_config = [{:overlay, overlay} | relx_config]
config = %{config | relx_config: relx_config}
end
end
def after_release(_), do: nil
def after_package(_), do: nil
def after_cleanup(_args), do: nil
end