configs/arch-config/.config/calibre/plugins/DeACSM/modules/asn1crypto/dev/ci-driver.py

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