# 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