X-Git-Url: https://v.licheni.net/stack/cam.git/blobdiff_plain/112c04e3926d62291efd902a1dcb0b2d24feeb59..6c8307537698dfaeba9b23ec1d7e198832b6fbd4:/cam/openssl_wrap.py diff --git a/cam/openssl_wrap.py b/cam/openssl_wrap.py index db44f26..ab94225 100644 --- a/cam/openssl_wrap.py +++ b/cam/openssl_wrap.py @@ -1,4 +1,5 @@ import logging +import os import subprocess log = logging.getLogger(__name__) @@ -8,11 +9,13 @@ class CommandError(Exception): pass -def run(*args): +def run(*args, **env_vars): cmd = ['openssl'] cmd.extend(args) + env = dict(os.environ) + env.update(env_vars) log.debug('executing "%s"' % ' '.join(cmd)) - pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE) + pipe = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE) stdout, _ = pipe.communicate() if pipe.returncode != 0: raise CommandError('openssl exited with status %d' % ( @@ -20,7 +23,8 @@ def run(*args): return stdout -def run_with_config(config_file, *args): +def run_with_config(caroot, config_file, *args): cmd = args[0] args = args[1:] - return run(cmd, '-config', config_file, '-batch', *args) + caroot = os.path.abspath(caroot) + return run(cmd, '-config', config_file, '-batch', *args, CAROOT=caroot)