diff options
Diffstat (limited to 'subcmds/status.py')
-rw-r--r-- | subcmds/status.py | 27 |
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)") |