Force test use bash for setupvars.sh (#4321)

setupvars.sh is incomatible with sh shell.
This commit is contained in:
Andrey Somsikov 2021-02-15 13:07:17 +03:00 committed by GitHub
parent 01aaaf1138
commit 4f79d9ccfc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 27 deletions

View File

@ -4,13 +4,32 @@
""" Common utilities for OpenVINO install package.
"""
import sys
import errno
import os
from pathlib import Path
from proc_utils import get_env_from # pylint: disable=import-error
import subprocess
import sys
def get_openvino_environment(install_prefix: Path):
""" Get OpenVINO environment variables
"""
script = "setupvars.bat" if sys.platform == "win32" else "setupvars.sh"
return get_env_from(install_prefix / "bin" / script)
if sys.platform == "win32":
script = install_prefix / "bin" / "setupvars.bat"
cmd = f"{script} && set"
else:
script = install_prefix / "bin" / "setupvars.sh"
# setupvars.sh is not compatible with /bin/sh. Using bash.
cmd = f'bash -c ". {script} && env"'
if not os.path.exists(str(script)):
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), str(script))
env = {}
dump = subprocess.check_output(cmd, shell=True, universal_newlines=True).strip()
for line in dump.split("\n"):
# split by first '='
pair = [str(val).strip() for val in line.split("=", 1)]
if len(pair) > 1 and pair[0]: # ignore invalid entries
env[pair[0]] = pair[1]
return env

View File

@ -2,7 +2,7 @@
# Copyright (C) 2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
""" Common utilities for working with processes.
""" Common utilities for working with paths
"""
import os

View File

@ -5,30 +5,8 @@
""" Common utilities for working with processes.
"""
import errno
import os
import logging
import subprocess
import sys
def get_env_from(script):
""" Get environment set by a shell script
"""
if not os.path.exists(str(script)):
raise FileNotFoundError(errno.ENOENT, os.strerror(errno.ENOENT), str(script))
env = {}
if sys.platform == "win32":
cmd = f'"{script}" && set'
else:
cmd = f'. "{script}" && env'
dump = subprocess.check_output(cmd, shell=True, universal_newlines=True).strip()
for line in dump.split("\n"):
# split by first '='
pair = [str(val).strip() for val in line.split("=", 1)]
if len(pair) > 1 and pair[0]: # ignore invalid entries
env[pair[0]] = pair[1]
return env
def cmd_exec(args, env=None, log=None, verbose=True):