| OLD | NEW | 
|---|
| 1 # Copyright 2016 The LUCI Authors. All rights reserved. | 1 # Copyright 2016 The LUCI Authors. All rights reserved. | 
| 2 # Use of this source code is governed under the Apache License, Version 2.0 | 2 # Use of this source code is governed under the Apache License, Version 2.0 | 
| 3 # that can be found in the LICENSE file. | 3 # that can be found in the LICENSE file. | 
| 4 | 4 | 
| 5 import calendar | 5 import calendar | 
| 6 import collections | 6 import collections | 
| 7 import contextlib | 7 import contextlib | 
| 8 import datetime | 8 import datetime | 
| 9 import itertools | 9 import itertools | 
| 10 import json | 10 import json | 
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 277     return getattr(value, '__name__', 'UNKNOWN_CALLABLE')+'(...)' | 277     return getattr(value, '__name__', 'UNKNOWN_CALLABLE')+'(...)' | 
| 278 | 278 | 
| 279   def _print_step(self, step_stream, step, env): | 279   def _print_step(self, step_stream, step, env): | 
| 280     """Prints the step command and relevant metadata. | 280     """Prints the step command and relevant metadata. | 
| 281 | 281 | 
| 282     Intended to be similar to the information that Buildbot prints at the | 282     Intended to be similar to the information that Buildbot prints at the | 
| 283     beginning of each non-annotator step. | 283     beginning of each non-annotator step. | 
| 284     """ | 284     """ | 
| 285     def gen_step_prelude(): | 285     def gen_step_prelude(): | 
| 286       yield ' '.join(map(_shell_quote, step.config.cmd)) | 286       yield ' '.join(map(_shell_quote, step.config.cmd)) | 
| 287       yield 'in dir %s:' % (step.config.cwd or os.getcwd()) | 287       cwd = step.config.cwd | 
|  | 288       if cwd is None: | 
|  | 289         try: | 
|  | 290           cwd = os.getcwd() | 
|  | 291         except OSError as ex: | 
|  | 292           cwd = '??? (ENGINE START_DIR IS MISSING: %r)' % (ex,) | 
|  | 293       elif not os.path.isdir(cwd): | 
|  | 294           cwd += ' (ENGINE START_DIR IS MISSING OR NOT A DIR)' | 
|  | 295       yield 'in dir %s:' % (cwd,) | 
| 288       for key, value in sorted(step.config._asdict().items()): | 296       for key, value in sorted(step.config._asdict().items()): | 
| 289         if value is not None: | 297         if value is not None: | 
| 290           yield ' %s: %s' % (key, self._render_step_value(value)) | 298           yield ' %s: %s' % (key, self._render_step_value(value)) | 
| 291       yield 'full environment:' | 299       yield 'full environment:' | 
| 292       for key, value in sorted(env.items()): | 300       for key, value in sorted(env.items()): | 
| 293         yield ' %s: %s' % (key, value) | 301         yield ' %s: %s' % (key, value) | 
| 294       yield '' | 302       yield '' | 
| 295     stream.output_iter(step_stream, gen_step_prelude()) | 303     stream.output_iter(step_stream, gen_step_prelude()) | 
| 296 | 304 | 
| 297   def _run_cmd(self, cmd, timeout, handles, env, cwd): | 305   def _run_cmd(self, cmd, timeout, handles, env, cwd): | 
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 740   supplied command, and only uses the |env| kwarg for modifying the environment | 748   supplied command, and only uses the |env| kwarg for modifying the environment | 
| 741   of the child process. | 749   of the child process. | 
| 742   """ | 750   """ | 
| 743   saved_path = os.environ['PATH'] | 751   saved_path = os.environ['PATH'] | 
| 744   try: | 752   try: | 
| 745     if path is not None: | 753     if path is not None: | 
| 746       os.environ['PATH'] = path | 754       os.environ['PATH'] = path | 
| 747     yield | 755     yield | 
| 748   finally: | 756   finally: | 
| 749     os.environ['PATH'] = saved_path | 757     os.environ['PATH'] = saved_path | 
| OLD | NEW | 
|---|