aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorW. Trevor King <wking@drexel.edu>2009-06-25 10:05:25 -0400
committerW. Trevor King <wking@drexel.edu>2009-06-25 10:05:25 -0400
commit05892f36554a0cda289b207718289216670ac214 (patch)
tree19b8054b4849edcac2b06b1045396b415e777bf7
parent5fd3c3c3afa8be4680798978e4e5fb0436fbf00c (diff)
downloadbugseverywhere-05892f36554a0cda289b207718289216670ac214.tar.gz
Added regexp matching to `be list --extra-strings'
-rw-r--r--becommands/list.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/becommands/list.py b/becommands/list.py
index fa2f592..c397024 100644
--- a/becommands/list.py
+++ b/becommands/list.py
@@ -17,6 +17,7 @@
"""List bugs"""
from libbe import cmdutil, bugdir, bug
import os
+import re
__desc__ = __doc__
# get a list of * for cmp_*() comparing two bugs.
@@ -110,8 +111,8 @@ def execute(args, test=False):
if target == []: # set the default value
target = "all"
if options.extra_strings != None:
- required_extra_strings = options.extra_strings.split(',')
-
+ extra_string_regexps = [re.compile(x) for x in options.extra_strings.split(',')]
+
def filter(bug):
if status != "all" and not bug.status in status:
return False
@@ -122,9 +123,12 @@ def execute(args, test=False):
if target != "all" and not bug.target in target:
return False
if options.extra_strings != None:
+ if len(bug.extra_strings) == 0 and len(extra_string_regexps) > 0:
+ return False
for string in bug.extra_strings:
- if string not in required_extra_strings:
- return False
+ for regexp in extra_string_regexps:
+ if not regexp.match(string):
+ return False
return True
bugs = [b for b in bd if filter(b) ]