74 lines
1.7 KiB
Python
74 lines
1.7 KiB
Python
# coding: utf-8
|
|
from __future__ import unicode_literals, division, absolute_import, print_function
|
|
|
|
import os
|
|
import platform
|
|
import sys
|
|
import subprocess
|
|
|
|
|
|
run_args = [
|
|
{
|
|
'name': 'cffi',
|
|
'kwarg': 'cffi',
|
|
},
|
|
{
|
|
'name': 'openssl',
|
|
'kwarg': 'openssl',
|
|
},
|
|
{
|
|
'name': 'winlegacy',
|
|
'kwarg': 'winlegacy',
|
|
},
|
|
]
|
|
|
|
|
|
def _write_env(env, key, value):
|
|
sys.stdout.write("%s: %s\n" % (key, value))
|
|
sys.stdout.flush()
|
|
if sys.version_info < (3,):
|
|
env[key.encode('utf-8')] = value.encode('utf-8')
|
|
else:
|
|
env[key] = value
|
|
|
|
|
|
def run(**_):
|
|
"""
|
|
Runs CI, setting various env vars
|
|
|
|
:return:
|
|
A bool - if the CI ran successfully
|
|
"""
|
|
|
|
env = os.environ.copy()
|
|
options = set(sys.argv[2:])
|
|
|
|
newline = False
|
|
if 'cffi' not in options:
|
|
_write_env(env, 'OSCRYPTO_USE_CTYPES', 'true')
|
|
newline = True
|
|
if 'openssl' in options and sys.platform == 'darwin':
|
|
mac_version_info = tuple(map(int, platform.mac_ver()[0].split('.')[:2]))
|
|
if mac_version_info < (10, 15):
|
|
_write_env(env, 'OSCRYPTO_USE_OPENSSL', '/usr/lib/libcrypto.dylib,/usr/lib/libssl.dylib')
|
|
else:
|
|
_write_env(env, 'OSCRYPTO_USE_OPENSSL', '/usr/lib/libcrypto.35.dylib,/usr/lib/libssl.35.dylib')
|
|
newline = True
|
|
if 'winlegacy' in options:
|
|
_write_env(env, 'OSCRYPTO_USE_WINLEGACY', 'true')
|
|
newline = True
|
|
|
|
if newline:
|
|
sys.stdout.write("\n")
|
|
|
|
proc = subprocess.Popen(
|
|
[
|
|
sys.executable,
|
|
'run.py',
|
|
'ci',
|
|
],
|
|
env=env
|
|
)
|
|
proc.communicate()
|
|
return proc.returncode == 0
|