rpmlint/suse-filter-more-verbose.diff

49 lines
1.9 KiB
Diff
Raw Normal View History

--- Config.py
+++ Config.py
@@ -11,6 +11,7 @@
import locale
import os.path
import re
+import sys
try:
from __version__ import __version__
@@ -163,7 +164,17 @@
if '(' in _filters_non_except[idx]:
_non_named_group_re.subn('(:?', _filters_non_except[idx])
_filters_non_except_re = _filters_non_except_re + '|(?:' + _filters_non_except[idx] +')'
- _filters_non_except_re = re.compile(_filters_non_except_re)
+ try:
+ _filters_non_except_re = re.compile(_filters_non_except_re)
+ except Exception:
+ # Try to figure out which filter caused the error
+ for f in _filters_non_except[1:]:
+ try:
+ re.compile(f)
+ except Exception as e:
+ # can't use Pkg.error/warn here, as that would recurse
+ print >> sys.stderr, "(none): E: %s in filter '%s'" % (e.message, f)
+ sys.exit(2)
if _filters_re == None and len(_filters):
_filters_re = '(?:' + _filters[0] + ')'
@@ -175,7 +186,17 @@
if '(' in _filters[idx]:
_non_named_group_re.subn('(:?', _filters[idx])
_filters_re = _filters_re + '|(?:' + _filters[idx] +')'
- _filters_re = re.compile(_filters_re)
+ try:
+ _filters_re = re.compile(_filters_re)
+ except Exception:
+ # Try to figure out which filter caused the error
+ for f in _filters[1:]:
+ try:
+ re.compile(f)
+ except Exception as e:
+ # can't use Pkg.error/warn here, as that would recurse
+ print >> sys.stderr, "(none): E: %s in filter '%s'" % (e.message, f)
+ sys.exit(2)
if _filters_except_re == None and len(_filters_except):
_filters_except_re = '(?:' + _filters_except[0] + ')'