summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap29
1 files changed, 13 insertions, 16 deletions
diff --git a/bootstrap b/bootstrap
index 9190c6b..c7f0e06 100755
--- a/bootstrap
+++ b/bootstrap
@@ -150,8 +150,9 @@ set_httpc_options(_, []) ->
ok;
set_httpc_options(Scheme, Proxy) ->
- {ok, {_, _, Host, Port, _, _}} = http_uri:parse(Proxy),
- httpc:set_options([{Scheme, {{Host, Port}, []}}], rebar).
+ {ok, {_, UserInfo, Host, Port, _, _}} = http_uri:parse(Proxy),
+ httpc:set_options([{Scheme, {{Host, Port}, []}}], rebar),
+ set_proxy_auth(UserInfo).
compile(App, FirstFiles) ->
Dir = filename:join(filename:absname("_build/default/lib/"), App),
@@ -406,22 +407,18 @@ otp_release1(Rel) ->
end
end.
-%% extracts username and password from HTTPS_PROXY and returns them as tuple
-get_proxy_auth() ->
- get_proxy_auth(get_http_vars(https_proxy)).
-
-get_proxy_auth([]) ->
- [];
-get_proxy_auth(HttpsProxy) ->
- {ok, {_, UserInfo, _, _, _, _}} = http_uri:parse(HttpsProxy),
- parse_user_info(UserInfo).
-
-parse_user_info([]) ->
- [];
-parse_user_info(UserInfo) ->
+set_proxy_auth([]) ->
+ ok;
+set_proxy_auth(UserInfo) ->
Idx = string:chr(UserInfo, $:),
Username = string:sub_string(UserInfo, 1, Idx-1),
Password = string:sub_string(UserInfo, Idx+1),
%% password may contain url encoded characters, need to decode them first
- [{proxy_auth, {Username, http_uri:decode(Password)}}].
+ put(proxy_auth, [{proxy_auth, {Username, http_uri:decode(Password)}}]).
+
+get_proxy_auth() ->
+ case get(proxy_auth) of
+ undefined -> [];
+ ProxyAuth -> ProxyAuth
+ end.