diff options
-rwxr-xr-x | bootstrap | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -82,6 +82,7 @@ extract(Binary) -> {ok, Contents}. request(Url) -> + setHttpcOptions(), case httpc:request(get, {Url, []}, [{relaxed, true}], [{body_format, binary}]) of @@ -91,6 +92,47 @@ request(Url) -> Error end. +setHttpcOptions() -> + %% Get http_proxy and https_proxy environment variables + case os:getenv("http_proxy") of + false -> + Http = ""; + Http -> + Http + end, + case os:getenv("https_proxy") of + false -> + Https = ""; + Https -> + Https + end, + + %% Parse the variables to extract host and port + Opts = [], + case http_uri:parse(Http) of + {ok,{_, [], Host, Port, _, []}} -> + Opts1 = Opts ++ [{proxy, {{Host, Port}, []}}]; + {error, _} -> + Opts1 = Opts + end, + + case http_uri:parse(Https) of + {ok,{_, [], Host2, Port2, _, []}} -> + Opts2 = Opts1 ++ [{https_proxy, {{Host2, Port2}, []}}]; + {error, _} -> + Opts2 = Opts1 + end, + + io:format("Opts: ~p~n", [Opts2]), + + case Opts2 of + [] -> + ok; + _ -> + httpc:set_options(Opts2), + ok + end. + compile(App, FirstFiles) -> Dir = filename:join(filename:absname("_build/default/lib/"), App), filelib:ensure_dir(filename:join([Dir, "ebin", "dummy.beam"])), |