Use the internal download() function rather than curl
This commit is contained in:
@@ -8,7 +8,7 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from pipes import quote as shlex_quote
|
from pipes import quote as shlex_quote
|
||||||
|
|
||||||
from .util import prepare_command, get_build_verbosity_extra_flags
|
from .util import prepare_command, get_build_verbosity_extra_flags, download
|
||||||
|
|
||||||
|
|
||||||
def get_python_configurations(build_selector):
|
def get_python_configurations(build_selector):
|
||||||
@@ -51,19 +51,20 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
|
|||||||
return subprocess.check_call(args, env=env, cwd=cwd, shell=shell)
|
return subprocess.check_call(args, env=env, cwd=cwd, shell=shell)
|
||||||
|
|
||||||
# get latest pip once and for all
|
# get latest pip once and for all
|
||||||
call(['curl', '--retry', '3', '--retry-delay', '3', '-sSLo', get_pip_script, get_pip_url])
|
download(get_pip_url, get_pip_script)
|
||||||
|
|
||||||
for config in python_configurations:
|
for config in python_configurations:
|
||||||
# if this version of python isn't installed, get it from python.org and install
|
# if this version of python isn't installed, get it from python.org and install
|
||||||
python_package_identifier = 'org.python.Python.PythonFramework-%s' % config.version
|
python_package_identifier = 'org.python.Python.PythonFramework-%s' % config.version
|
||||||
if python_package_identifier not in installed_system_packages:
|
if python_package_identifier not in installed_system_packages:
|
||||||
# download the pkg
|
# download the pkg
|
||||||
call(['curl', '--retry', '3', '--retry-delay', '3', '-sSLo', '/tmp/Python.pkg', config.url])
|
download(config.url, '/tmp/Python.pkg')
|
||||||
# install
|
# install
|
||||||
call(['sudo', 'installer', '-pkg', '/tmp/Python.pkg', '-target', '/'])
|
call(['sudo', 'installer', '-pkg', '/tmp/Python.pkg', '-target', '/'])
|
||||||
# patch open ssl
|
# patch open ssl
|
||||||
if config.version == '3.5':
|
if config.version == '3.5':
|
||||||
call(['curl', '--retry', '3', '--retry-delay', '3', '-fsSLo', '/tmp/python-patch.tar.gz', 'https://github.com/mayeut/patch-macos-python-openssl/releases/download/v1.0.2t/patch-macos-python-%s-openssl-v1.0.2t.tar.gz' % config.version])
|
open_ssl_patch_url = 'https://github.com/mayeut/patch-macos-python-openssl/releases/download/v1.0.2t/patch-macos-python-%s-openssl-v1.0.2t.tar.gz' % config.version
|
||||||
|
download(open_ssl_patch_url, '/tmp/python-patch.tar.gz')
|
||||||
call(['sudo', 'tar', '-C', '/Library/Frameworks/Python.framework/Versions/%s/' % config.version, '-xmf', '/tmp/python-patch.tar.gz'])
|
call(['sudo', 'tar', '-C', '/Library/Frameworks/Python.framework/Versions/%s/' % config.version, '-xmf', '/tmp/python-patch.tar.gz'])
|
||||||
|
|
||||||
installation_bin_path = '/Library/Frameworks/Python.framework/Versions/{}/bin'.format(config.version)
|
installation_bin_path = '/Library/Frameworks/Python.framework/Versions/{}/bin'.format(config.version)
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
from fnmatch import fnmatch
|
from fnmatch import fnmatch
|
||||||
import warnings
|
import warnings
|
||||||
|
import os
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
try:
|
||||||
|
from urllib.request import urlopen
|
||||||
|
except ImportError:
|
||||||
|
from urllib2 import urlopen
|
||||||
|
|
||||||
|
|
||||||
def prepare_command(command, **kwargs):
|
def prepare_command(command, **kwargs):
|
||||||
@@ -50,3 +57,27 @@ class Unbuffered(object):
|
|||||||
|
|
||||||
def __getattr__(self, attr):
|
def __getattr__(self, attr):
|
||||||
return getattr(self.stream, attr)
|
return getattr(self.stream, attr)
|
||||||
|
|
||||||
|
|
||||||
|
def download(url, dest):
|
||||||
|
print('+ Download ' + url + ' to ' + dest)
|
||||||
|
dest_dir = os.path.dirname(dest)
|
||||||
|
if not os.path.exists(dest_dir):
|
||||||
|
os.makedirs(dest_dir)
|
||||||
|
|
||||||
|
repeat_num = 3
|
||||||
|
for i in range(repeat_num):
|
||||||
|
try:
|
||||||
|
response = urlopen(url)
|
||||||
|
except:
|
||||||
|
if i == repeat_num - 1:
|
||||||
|
raise
|
||||||
|
sleep(3)
|
||||||
|
continue
|
||||||
|
break
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(dest, 'wb') as file:
|
||||||
|
file.write(response.read())
|
||||||
|
finally:
|
||||||
|
response.close()
|
||||||
|
|||||||
+1
-29
@@ -1,6 +1,5 @@
|
|||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import os, tempfile, subprocess, shutil, sys
|
import os, tempfile, subprocess, shutil, sys
|
||||||
from time import sleep
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from glob import glob
|
from glob import glob
|
||||||
|
|
||||||
@@ -9,12 +8,7 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from pipes import quote as shlex_quote
|
from pipes import quote as shlex_quote
|
||||||
|
|
||||||
try:
|
from .util import prepare_command, get_build_verbosity_extra_flags, download
|
||||||
from urllib.request import urlopen
|
|
||||||
except ImportError:
|
|
||||||
from urllib2 import urlopen
|
|
||||||
|
|
||||||
from .util import prepare_command, get_build_verbosity_extra_flags
|
|
||||||
|
|
||||||
|
|
||||||
IS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache')
|
IS_RUNNING_ON_AZURE = os.path.exists('C:\\hostedtoolcache')
|
||||||
@@ -64,28 +58,6 @@ def build(project_dir, output_dir, test_command, test_requires, test_extras, bef
|
|||||||
args = ['cmd', '/E:ON', '/V:ON', '/C'] + args
|
args = ['cmd', '/E:ON', '/V:ON', '/C'] + args
|
||||||
return subprocess.check_call(' '.join(args), env=env, cwd=cwd)
|
return subprocess.check_call(' '.join(args), env=env, cwd=cwd)
|
||||||
|
|
||||||
def download(url, dest):
|
|
||||||
print('+ Download ' + url + ' to ' + dest)
|
|
||||||
dest_dir = os.path.dirname(dest)
|
|
||||||
if not os.path.exists(dest_dir):
|
|
||||||
os.makedirs(dest_dir)
|
|
||||||
repeat_num = 3
|
|
||||||
for i in range(repeat_num):
|
|
||||||
try:
|
|
||||||
response = urlopen(url)
|
|
||||||
except:
|
|
||||||
if i == repeat_num - 1:
|
|
||||||
raise
|
|
||||||
sleep(3)
|
|
||||||
continue
|
|
||||||
break
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open(dest, 'wb') as file:
|
|
||||||
file.write(response.read())
|
|
||||||
finally:
|
|
||||||
response.close()
|
|
||||||
|
|
||||||
if IS_RUNNING_ON_AZURE or IS_RUNNING_ON_TRAVIS:
|
if IS_RUNNING_ON_AZURE or IS_RUNNING_ON_TRAVIS:
|
||||||
shell = simple_shell
|
shell = simple_shell
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user