Packages
nerves
1.7.15
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.ex
defmodule Nerves do
@elixir_version_req ">= 1.7.0"
@otp_version_req ">= 21.0.0"
def version, do: unquote(Mix.Project.config()[:version])
def elixir_version, do: unquote(System.version())
def otp_release, do: unquote(System.otp_release())
def system_requirements(elixir_version \\ nil, otp_release \\ nil) do
elixir_version = elixir_version || elixir_version()
otp_release = otp_release || otp_release()
with {:ok, otp_rel_version} <- Version.parse(otp_release <> ".0.0"),
true <- Version.match?(elixir_version, @elixir_version_req),
true <- Version.match?(otp_rel_version, @otp_version_req) do
:ok
else
_ ->
Nerves.Utils.Shell.warn("""
Nerves #{version()} requires at least Elixir #{@elixir_version_req} and Erlang/OTP #{@otp_version_req}.
Your system has Elixir #{elixir_version} and Erlang/OTP #{otp_release}.
Please resolve this by either:
1. Installing a compatible version of Elixir and Erlang/OTP
2. Pinning your nerves and nerves_bootstrap dependencies to
older versions.
""")
:error
end
end
end