Skip to content

Commit ad8f9dd

Browse files
Do not fetch artifacts on deps.get that are set in the env
1 parent 742fa97 commit ad8f9dd

File tree

2 files changed

+32
-6
lines changed

2 files changed

+32
-6
lines changed

lib/mix/tasks/nerves.artifact.get.ex

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,20 @@ defmodule Mix.Tasks.Nerves.Artifact.Get do
3232
:noop
3333

3434
%Nerves.Package{} = pkg ->
35-
case Artifact.Cache.get(pkg) do
36-
nil ->
37-
get_artifact(pkg)
38-
39-
_cache_path ->
40-
Nerves.Utils.Shell.success(" Cached #{app}")
35+
# Check to see if the package path is set in the environment
36+
if Nerves.Artifact.env_var?(pkg) do
37+
path = System.get_env(Nerves.Artifact.env_var(pkg))
38+
Nerves.Utils.Shell.success(" Env #{app}")
39+
Nerves.Utils.Shell.success(" #{path}")
40+
else
41+
# Check the cache
42+
case Artifact.Cache.get(pkg) do
43+
nil ->
44+
get_artifact(pkg)
45+
46+
_cache_path ->
47+
Nerves.Utils.Shell.success(" Cached #{app}")
48+
end
4149
end
4250

4351
_ ->

test/nerves/cache_test.exs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,22 @@ defmodule Nerves.CacheTest do
8080
refute File.exists?(dl_path)
8181
end)
8282
end
83+
84+
test "skip fetching packages that have paths set in the env" do
85+
in_fixture("system", fn ->
86+
File.cwd!()
87+
|> Path.join("mix.exs")
88+
|> Code.require_file()
89+
90+
Nerves.Env.start()
91+
92+
File.mkdir_p(Nerves.Env.download_dir())
93+
94+
System.put_env("NERVES_SYSTEM", Nerves.Env.download_dir())
95+
Mix.Tasks.Nerves.Artifact.Get.get(:system, [])
96+
message = "\e[32m " <> Nerves.Env.download_dir() <> "\e[0m"
97+
assert_receive({:mix_shell, :info, [^message]}, 100)
98+
System.delete_env("NERVES_SYSTEM")
99+
end)
100+
end
83101
end

0 commit comments

Comments
 (0)