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)") |
