summaryrefslogtreecommitdiffstats
path: root/subcmds/status.py
diff options
context:
space:
mode:
Diffstat (limited to 'subcmds/status.py')
-rw-r--r--subcmds/status.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/subcmds/status.py b/subcmds/status.py
index dac61ab6..cda73627 100644
--- a/subcmds/status.py
+++ b/subcmds/status.py
@@ -88,7 +88,8 @@ the following meanings:
88 "projects", 88 "projects",
89 ) 89 )
90 90
91 def _StatusHelper(self, quiet, local, project): 91 @classmethod
92 def _StatusHelper(cls, quiet, local, project_idx):
92 """Obtains the status for a specific project. 93 """Obtains the status for a specific project.
93 94
94 Obtains the status for a project, redirecting the output to 95 Obtains the status for a project, redirecting the output to
@@ -99,12 +100,13 @@ the following meanings:
99 local: a boolean, if True, the path is relative to the local 100 local: a boolean, if True, the path is relative to the local
100 (sub)manifest. If false, the path is relative to the outermost 101 (sub)manifest. If false, the path is relative to the outermost
101 manifest. 102 manifest.
102 project: Project to get status of. 103 project_idx: Project index to get status of.
103 104
104 Returns: 105 Returns:
105 The status of the project. 106 The status of the project.
106 """ 107 """
107 buf = io.StringIO() 108 buf = io.StringIO()
109 project = cls.get_parallel_context()["projects"][project_idx]
108 ret = project.PrintWorkTreeStatus( 110 ret = project.PrintWorkTreeStatus(
109 quiet=quiet, output_redir=buf, local=local 111 quiet=quiet, output_redir=buf, local=local
110 ) 112 )
@@ -143,15 +145,18 @@ the following meanings:
143 ret += 1 145 ret += 1
144 return ret 146 return ret
145 147
146 counter = self.ExecuteInParallel( 148 with self.ParallelContext():
147 opt.jobs, 149 self.get_parallel_context()["projects"] = all_projects
148 functools.partial( 150 counter = self.ExecuteInParallel(
149 self._StatusHelper, opt.quiet, opt.this_manifest_only 151 opt.jobs,
150 ), 152 functools.partial(
151 all_projects, 153 self._StatusHelper, opt.quiet, opt.this_manifest_only
152 callback=_ProcessResults, 154 ),
153 ordered=True, 155 range(len(all_projects)),
154 ) 156 callback=_ProcessResults,
157 ordered=True,
158 chunksize=1,
159 )
155 160
156 if not opt.quiet and len(all_projects) == counter: 161 if not opt.quiet and len(all_projects) == counter:
157 print("nothing to commit (working directory clean)") 162 print("nothing to commit (working directory clean)")