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/package/artifact.ex
defmodule Nerves.Package.Artifact do
@base_dir Path.expand("~/.nerves/artifacts")
def name(pkg, toolchain) do
target_tuple =
case pkg.type do
:toolchain ->
Nerves.Env.host_platform <> "-" <>
Nerves.Env.host_arch
_ ->
toolchain.config[:target_tuple]
|> to_string
end
"#{pkg.app}-#{pkg.version}.#{target_tuple}"
end
def base_dir(pkg) do
case pkg.dep do
local when local in [:path, :project] ->
pkg.path
|> Path.join(".nerves/artifacts")
_ ->
System.get_env("NERVES_ARTIFACTS_DIR") || @base_dir
end
end
def dir(pkg, toolchain) do
base_dir(pkg)
|> Path.join(name(pkg, toolchain))
|> protocol_vsn(pkg)
end
defp protocol_vsn(dir, pkg) do
if pkg.compiler == :nerves_package do
dir
else
build_path =
Mix.Project.build_path
|> Path.join("nerves")
|> Path.expand
case pkg.type do
:toolchain ->
Path.join(build_path, "toolchain")
:system ->
Path.join(build_path, "system")
type -> Mix.raise "Cannot determine artifact path for #{type}"
end
end
end
def exists?(pkg, toolchain) do
dir(pkg, toolchain)
|> File.dir?
end
def ext(%{type: :toolchain}), do: "tar.xz"
end