This library is not available on Windows. Detect this and work around it by using a normal pipe.
Signed-off-by: Simon Glass <s...@chromium.org> --- scripts/make_pip.sh | 9 +++++++-- tools/u_boot_pylib/cros_subprocess.py | 28 ++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/scripts/make_pip.sh b/scripts/make_pip.sh index 4602dcf61c88..bcff65240ba1 100755 --- a/scripts/make_pip.sh +++ b/scripts/make_pip.sh @@ -91,7 +91,12 @@ find ${dest} -name __pycache__ -type f -exec rm {} \; find ${dest} -depth -name __pycache__ -exec rmdir 112 \; # Remove test files -rm -rf ${dest}/*test* +for path in ${dest}/*test*; do + echo ${path} + if ! [[ "${path}" =~ .*test_util.* ]]; then + rm -rf ${path} + fi +done mkdir ${dir}/tests cd ${dir} @@ -108,7 +113,7 @@ echo "Completed build of ${tool}" # Use --skip-existing to work even if the version is already present if [ -n "${upload}" ]; then echo "Uploading from ${dir}" - python3 -m twine upload ${repo} -u __token__ dist/* + python3 -m twine upload ${repo} --verbose -u __token__ dist/* echo "Completed upload of ${tool}" fi diff --git a/tools/u_boot_pylib/cros_subprocess.py b/tools/u_boot_pylib/cros_subprocess.py index cd614f38a648..35cef7333f3a 100644 --- a/tools/u_boot_pylib/cros_subprocess.py +++ b/tools/u_boot_pylib/cros_subprocess.py @@ -16,12 +16,18 @@ progress information and filter output in real time. import errno import os -import pty import select import subprocess import sys import unittest +try: + import pty + HAVE_PTY = True +except: + # For Windows + HAVE_PTY = False + # Import these here so the caller does not need to import subprocess also. PIPE = subprocess.PIPE @@ -74,11 +80,17 @@ class Popen(subprocess.Popen): stderr_pty = None if stdout == PIPE_PTY: - stdout_pty = pty.openpty() - stdout = os.fdopen(stdout_pty[1]) + if HAVE_PTY: + stdout_pty = pty.openpty() + stdout = os.fdopen(stdout_pty[1]) + else: + stdout = PIPE if stderr == PIPE_PTY: - stderr_pty = pty.openpty() - stderr = os.fdopen(stderr_pty[1]) + if HAVE_PTY: + stderr_pty = pty.openpty() + stderr = os.fdopen(stderr_pty[1]) + else: + stderr = PIPE super(Popen, self).__init__(args, stdin=stdin, stdout=stdout, stderr=stderr, shell=shell, cwd=cwd, env=env, @@ -156,6 +168,12 @@ class Popen(subprocess.Popen): Note also that if you set stderr to STDOUT, then stderr will be empty and the combined output will just be the same as stdout. """ + if not HAVE_PTY: + stdout, stderr = self.communicate(input_buf) + stdout = self.convert_data(stdout) + stderr = self.convert_data(stderr) + combined = self.convert_data(stdout + stderr) + return (stdout, stderr, combined) read_set = [] write_set = [] -- 2.40.0.634.g4ca3ef3211-goog