mirror of
https://git.codelinaro.org/clo/tools/repo.git
synced 2025-06-18 17:28:52 +08:00
Add --inverse-regex option to forall subcommand
Make it possible to exclude projects using regex/wildcard. The syntax is similar to that of the -r option, e.g.: repo forall -i ^platform/ ^device/ -c 'echo $REPO_PROJECT' Change-Id: Id250de5665152228c044c79337d3ac15b5696484
This commit is contained in:

committed by
David Pursehouse

parent
936d6185eb
commit
1f0564406b
10
command.py
10
command.py
@ -193,14 +193,20 @@ class Command(object):
|
||||
result.sort(key=_getpath)
|
||||
return result
|
||||
|
||||
def FindProjects(self, args):
|
||||
def FindProjects(self, args, inverse=False):
|
||||
result = []
|
||||
patterns = [re.compile(r'%s' % a, re.IGNORECASE) for a in args]
|
||||
for project in self.GetProjects(''):
|
||||
for pattern in patterns:
|
||||
if pattern.search(project.name) or pattern.search(project.relpath):
|
||||
match = pattern.search(project.name) or pattern.search(project.relpath)
|
||||
if not inverse and match:
|
||||
result.append(project)
|
||||
break
|
||||
if inverse and match:
|
||||
break
|
||||
else:
|
||||
if inverse:
|
||||
result.append(project)
|
||||
result.sort(key=lambda project: project.relpath)
|
||||
return result
|
||||
|
||||
|
Reference in New Issue
Block a user