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