From ddbb6d064d89661eb718a1690eb750562ba9e908 Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Fri, 30 Nov 2018 20:18:21 +0100 Subject: [PATCH] Revert "Use enviornment variable" This reverts commit 7f038eb5d26df72f76ea9ae76774e2cec1fd7f59. --- esphomeyaml/platformio_api.py | 2 -- esphomeyaml/util.py | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/esphomeyaml/platformio_api.py b/esphomeyaml/platformio_api.py index 7cc57df869..fb25f0ebfe 100644 --- a/esphomeyaml/platformio_api.py +++ b/esphomeyaml/platformio_api.py @@ -1,6 +1,5 @@ import json import logging -import os import re import subprocess @@ -14,7 +13,6 @@ def run_platformio_cli(*args, **kwargs): import platformio.__main__ cmd = ['platformio'] + list(args) - os.environ["PLATFORMIO_FORCE_COLOR"] = 'true' return run_external_command(platformio.__main__.main, *cmd, **kwargs) diff --git a/esphomeyaml/util.py b/esphomeyaml/util.py index bb9f4b3e66..4013d37053 100644 --- a/esphomeyaml/util.py +++ b/esphomeyaml/util.py @@ -48,6 +48,18 @@ def shlex_quote(s): return u"'" + s.replace(u"'", u"'\"'\"'") + u"'" +class RedirectText(object): + def __init__(self, out): + self._out = out + + def __getattr__(self, item): + return getattr(self._out, item) + + # pylint: disable=no-self-use + def isatty(self): + return True + + def run_external_command(func, *cmd, **kwargs): def mock_exit(return_code): raise SystemExit(return_code) @@ -57,6 +69,9 @@ def run_external_command(func, *cmd, **kwargs): full_cmd = u' '.join(shlex_quote(x) for x in cmd) _LOGGER.info(u"Running: %s", full_cmd) + sys.stdout = RedirectText(sys.stdout) + sys.stderr = RedirectText(sys.stderr) + capture_stdout = kwargs.get('capture_stdout', False) if capture_stdout: sys.stdout = io.BytesIO() @@ -76,6 +91,11 @@ def run_external_command(func, *cmd, **kwargs): sys.argv = orig_argv sys.exit = orig_exit + if isinstance(sys.stdout, RedirectText): + sys.stdout = sys.__stdout__ + if isinstance(sys.stderr, RedirectText): + sys.stderr = sys.__stderr__ + if capture_stdout: # pylint: disable=lost-exception stdout = sys.stdout.getvalue()