mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
mkenums: Use the same reporting functions from genmarshal
We can reuse the same code to make error reporting stand out a bit more, with colors and potentially with the ability to make warnings fatal.
This commit is contained in:
parent
69515e9f5c
commit
7ee050dc4b
@ -17,6 +17,49 @@ import tempfile
|
|||||||
|
|
||||||
output_stream = sys.stdout
|
output_stream = sys.stdout
|
||||||
|
|
||||||
|
# pylint: disable=too-few-public-methods
|
||||||
|
class Color:
|
||||||
|
'''ANSI Terminal colors'''
|
||||||
|
GREEN = '\033[1;32m'
|
||||||
|
BLUE = '\033[1;34m'
|
||||||
|
YELLOW = '\033[1;33m'
|
||||||
|
RED = '\033[1;31m'
|
||||||
|
END = '\033[0m'
|
||||||
|
|
||||||
|
|
||||||
|
def print_color(msg, color=Color.END, prefix='MESSAGE'):
|
||||||
|
'''Print a string with a color prefix'''
|
||||||
|
if os.isatty(sys.stderr.fileno()):
|
||||||
|
real_prefix = '{start}{prefix}{end}'.format(start=color, prefix=prefix, end=Color.END)
|
||||||
|
else:
|
||||||
|
real_prefix = prefix
|
||||||
|
print('{prefix}: {msg}'.format(prefix=real_prefix, msg=msg), file=sys.stderr)
|
||||||
|
|
||||||
|
|
||||||
|
def print_error(msg):
|
||||||
|
'''Print an error, and terminate'''
|
||||||
|
print_color(msg, color=Color.RED, prefix='ERROR')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def print_warning(msg, fatal=False):
|
||||||
|
'''Print a warning, and optionally terminate'''
|
||||||
|
if fatal:
|
||||||
|
color = Color.RED
|
||||||
|
prefix = 'ERROR'
|
||||||
|
else:
|
||||||
|
color = Color.YELLOW
|
||||||
|
prefix = 'WARNING'
|
||||||
|
print_color(msg, color, prefix)
|
||||||
|
if fatal:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def print_info(msg):
|
||||||
|
'''Print a message'''
|
||||||
|
print_color(msg, color=Color.GREEN, prefix='INFO')
|
||||||
|
|
||||||
|
|
||||||
def write_output(output):
|
def write_output(output):
|
||||||
global output_stream
|
global output_stream
|
||||||
print(output, file=output_stream)
|
print(output, file=output_stream)
|
||||||
@ -352,7 +395,7 @@ def process_file(curfilename):
|
|||||||
try:
|
try:
|
||||||
curfile = open(curfilename)
|
curfile = open(curfilename)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
sys.stderr.write('WARNING: No file "{}" found.'.format(curfilename))
|
print_warning('No file "{}" found.'.format(curfilename))
|
||||||
return
|
return
|
||||||
|
|
||||||
for line in curfile:
|
for line in curfile:
|
||||||
@ -393,10 +436,10 @@ def process_file(curfilename):
|
|||||||
|
|
||||||
if option_lowercase_name is not None:
|
if option_lowercase_name is not None:
|
||||||
if option_underscore_name is not None:
|
if option_underscore_name is not None:
|
||||||
print("$0: $ARGV:$.: lowercase_name overriden with underscore_name", file=sys.stderr)
|
print_warning("lowercase_name overriden with underscore_name")
|
||||||
option_lowercase_name = None
|
option_lowercase_name = None
|
||||||
else:
|
else:
|
||||||
print("$0: $ARGV:$.: lowercase_name is deprecated, use underscore_name", file=sys.stderr)
|
print_warning("lowercase_name is deprecated, use underscore_name")
|
||||||
|
|
||||||
# Didn't have trailing '{' look on next lines
|
# Didn't have trailing '{' look on next lines
|
||||||
if groups[0] is None and (len(groups) < 4 or groups[3] is None):
|
if groups[0] is None and (len(groups) < 4 or groups[3] is None):
|
||||||
|
Loading…
Reference in New Issue
Block a user