Skip to content
Snippets Groups Projects
Commit 5df83b5f authored by Daniel Brown's avatar Daniel Brown
Browse files

fixing ANSI code issue in stderr reading

parent f6658e06
No related branches found
No related tags found
No related merge requests found
......@@ -38,6 +38,8 @@ import itertools
import ctypes
import ctypes.util
import collections
import re
from collections import namedtuple, OrderedDict
from pykat.node_network import NodeNetwork
......@@ -881,17 +883,18 @@ class kat(object):
err = ""
#if self.verbose: print "Finesse output:"
for line in iter(p.stderr.readline, ""):
if len(line) > 0:
if isinstance(line, unicode):
import unicodedata
line = unicodedata.normalize('NFKD', line).encode("ascii", "ignore")
# remove any ANSI commands
ansi = re.compile(r'\x1b[^m]*m')
line = ansi.sub('', line)
if line.lstrip().startswith('**'):
# warnings and errors start with an asterisk
# so if verbose show them
if line.lstrip().startswith('*'):
if self.verbose: sys.stdout.write(line)
elif line.rstrip().endswith('s'):
elif line.rstrip().endswith('s') and line.contains('%'):
vals = line.split("-")
action = vals[0].strip()
prc = vals[1].strip()[:]
......@@ -907,8 +910,6 @@ class kat(object):
if printerr == 1:
sys.stdout.write("\r{0} {1}".format(action, prc))
elif line[0:3] == '** ':
if self.verbose: sys.stdout.write(line)
else:
err += line
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment