From 8b85ab2f81a1e27a6681e3b575bff20f6052ba35 Mon Sep 17 00:00:00 2001 From: Dmitri Vereshchagin Date: Fri, 30 Sep 2022 23:58:58 +0300 Subject: [PATCH] Respect HEX_MIRROR environment variable Mix and Hex don't use HEX_CDN for a long time. Mix can run Rebar3 to compile dependencies. To complete this Rebar3 may need to fetch plugins. It would be nice to specify Hex mirror for both Mix/Hex and Rebar3 using one variable. --- apps/rebar/src/rebar3.erl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/rebar/src/rebar3.erl b/apps/rebar/src/rebar3.erl index ac1d39a5b..1366c5aa5 100644 --- a/apps/rebar/src/rebar3.erl +++ b/apps/rebar/src/rebar3.erl @@ -132,7 +132,7 @@ run_aux(State, RawArgs) -> rebar_utils:check_blacklisted_otp_versions(rebar_state:get(State1, blacklisted_otp_vsns, undefined)), %% Maybe change the default hex CDN - State2 = case os:getenv("HEX_CDN", "") of + State2 = case hex_cdn() of "" -> State1; CDN -> @@ -486,3 +486,14 @@ test_defined([{d, 'TEST'}|_]) -> true; test_defined([{d, 'TEST', true}|_]) -> true; test_defined([_|Rest]) -> test_defined(Rest); test_defined([]) -> false. + +-spec hex_cdn() -> os:env_var_value(). +hex_cdn() -> + case os:getenv("HEX_CDN") of + false -> + %% Checking HEX_MIRROR can be useful when compiling dependencies + %% in a project managed by Mix. + os:getenv("HEX_MIRROR", ""); + CDN -> + CDN + end.