From 2674cacd16e6cb01e5dc4c729f6a990082035260 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Tue, 29 Dec 2015 16:28:01 +0000 Subject: [PATCH] Fixes #86. --- src/nimblepkg/options.nim | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/nimblepkg/options.nim b/src/nimblepkg/options.nim index 750e7e7..a7950c0 100644 --- a/src/nimblepkg/options.nim +++ b/src/nimblepkg/options.nim @@ -298,20 +298,26 @@ proc parseCmdLine*(): Options = proc getProxy*(options: Options): Proxy = ## Returns ``nil`` if no proxy is specified. - var url = initUri() + var url = "" if ($options.config.httpProxy).len > 0: - url = options.config.httpProxy + url = $options.config.httpProxy else: try: if existsEnv("http_proxy"): - parseUri(getEnv("http_proxy"), url) + url = getEnv("http_proxy") elif existsEnv("https_proxy"): - parseUri(getEnv("https_proxy"), url) + url = getEnv("https_proxy") except ValueError: echo("WARNING: Unable to parse proxy from environment: ", getCurrentExceptionMsg()) - if ($url).len > 0: - return newProxy($url, url.username & ":" & url.password) + if url.len > 0: + var parsed = parseUri(url) + if parsed.scheme.len == 0 or parsed.hostname.len == 0: + parsed = parseUri("http://" & url) + let auth = + if parsed.username.len > 0: parsed.username & ":" & parsed.password + else: "" + return newProxy($parsed, auth) else: return nil \ No newline at end of file