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
|