Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions nodeenv.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import sys
import os
import re
import ssl
import stat
import logging
import operator
Expand Down Expand Up @@ -52,6 +53,7 @@
is_WIN = platform.system() == 'Windows'
is_CYGWIN = platform.system().startswith('CYGWIN')

ignore_ssl_certs = False

# ---------------------------------------------------------
# Utils
Expand Down Expand Up @@ -93,6 +95,7 @@ class Config(object):
profile = False
make = 'make'
prebuilt = True
ignore_ssl_certs = False

@classmethod
def _load(cls, configfiles, verbose=False):
Expand Down Expand Up @@ -337,7 +340,13 @@ def parse_args(check=True):
action='store_true', default=Config.prebuilt,
help='Install node.js from prebuilt package (default)')

parser.add_option(
'--ignore_ssl_certs', dest='ignore_ssl_certs',
action='store_true', default=Config.ignore_ssl_certs,
help='Ignore certificates for package downloads. - UNSAFE -')

options, args = parser.parse_args()

if options.config_file is None:
options.config_file = ["./tox.ini", "./setup.cfg", "~/.nodeenvrc"]
elif not options.config_file:
Expand Down Expand Up @@ -573,6 +582,10 @@ def urlopen(url):
home_url = "https://github.com/ekalinin/nodeenv/"
headers = {'User-Agent': 'nodeenv/%s (%s)' % (nodeenv_version, home_url)}
req = urllib2.Request(url, None, headers)
if ignore_ssl_certs:
context = ssl.SSLContext()
context.verify_mode = ssl.CERT_NONE
return urllib2.urlopen(req, context=context)
return urllib2.urlopen(req)

# ---------------------------------------------------------
Expand Down Expand Up @@ -1009,6 +1022,9 @@ def main():
exit(1)

global src_base_url
global ignore_ssl_certs

ignore_ssl_certs = opt.ignore_ssl_certs

src_domain = None
if opt.mirror:
Expand Down