summaryrefslogtreecommitdiffstats
path: root/command.py
diff options
context:
space:
mode:
authorTakeshi Kanemoto <takeshi.kanemoto@sonymobile.com>2016-01-26 14:11:35 +0900
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2016-04-05 07:28:27 +0000
commit1f0564406ba5aab11b21a83d193485ee6597f213 (patch)
tree533f5c7a21032a634161c365f781efe8b340ecfc /command.py
parent936d6185eb9bb802a3b25982bc71c6bc58633f43 (diff)
downloadgit-repo-1f0564406ba5aab11b21a83d193485ee6597f213.tar.gz
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
Diffstat (limited to 'command.py')
-rw-r--r--command.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/command.py b/command.py
index 39dcf6c2..bc2f9501 100644
--- a/command.py
+++ b/command.py
@@ -193,14 +193,20 @@ class Command(object):
193 result.sort(key=_getpath) 193 result.sort(key=_getpath)
194 return result 194 return result
195 195
196 def FindProjects(self, args): 196 def FindProjects(self, args, inverse=False):
197 result = [] 197 result = []
198 patterns = [re.compile(r'%s' % a, re.IGNORECASE) for a in args] 198 patterns = [re.compile(r'%s' % a, re.IGNORECASE) for a in args]
199 for project in self.GetProjects(''): 199 for project in self.GetProjects(''):
200 for pattern in patterns: 200 for pattern in patterns:
201 if pattern.search(project.name) or pattern.search(project.relpath): 201 match = pattern.search(project.name) or pattern.search(project.relpath)
202 if not inverse and match:
202 result.append(project) 203 result.append(project)
203 break 204 break
205 if inverse and match:
206 break
207 else:
208 if inverse:
209 result.append(project)
204 result.sort(key=lambda project: project.relpath) 210 result.sort(key=lambda project: project.relpath)
205 return result 211 return result
206 212