summaryrefslogtreecommitdiffstats
path: root/subcmds/forall.py
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds/forall.py')
-rw-r--r--subcmds/forall.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/subcmds/forall.py b/subcmds/forall.py
index e2a420a9..03ebcb21 100644
--- a/subcmds/forall.py
+++ b/subcmds/forall.py
@@ -87,6 +87,12 @@ revision to a locally executed git command, use REPO_LREV.
87REPO_RREV is the name of the revision from the manifest, exactly 87REPO_RREV is the name of the revision from the manifest, exactly
88as written in the manifest. 88as written in the manifest.
89 89
90REPO_COUNT is the total number of projects being iterated.
91
92REPO_I is the current (1-based) iteration count. Can be used in
93conjunction with REPO_COUNT to add a simple progress indicator to your
94command.
95
90REPO__* are any extra environment variables, specified by the 96REPO__* are any extra environment variables, specified by the
91"annotation" element under any project element. This can be useful 97"annotation" element under any project element. This can be useful
92for differentiating trees based on user-specific criteria, or simply 98for differentiating trees based on user-specific criteria, or simply
@@ -178,7 +184,9 @@ without iterating through the remaining projects.
178 else: 184 else:
179 projects = self.FindProjects(args) 185 projects = self.FindProjects(args)
180 186
181 for project in projects: 187 os.environ['REPO_COUNT'] = str(len(projects))
188
189 for (cnt, project) in enumerate(projects):
182 env = os.environ.copy() 190 env = os.environ.copy()
183 def setenv(name, val): 191 def setenv(name, val):
184 if val is None: 192 if val is None:
@@ -190,6 +198,7 @@ without iterating through the remaining projects.
190 setenv('REPO_REMOTE', project.remote.name) 198 setenv('REPO_REMOTE', project.remote.name)
191 setenv('REPO_LREV', project.GetRevisionId()) 199 setenv('REPO_LREV', project.GetRevisionId())
192 setenv('REPO_RREV', project.revisionExpr) 200 setenv('REPO_RREV', project.revisionExpr)
201 setenv('REPO_I', str(cnt + 1))
193 for a in project.annotations: 202 for a in project.annotations:
194 setenv("REPO__%s" % (a.name), a.value) 203 setenv("REPO__%s" % (a.name), a.value)
195 204