pw_env_setup: Add durations to steps Example output: Setting up CIPD package manager...done (12.9s) Setting up Python environment.....done (1m18.3s) Setting up Host tools.............done (0.1s) Change-Id: I987b4cfa3cd37974f401d36aeca3d7d6e4f31d30 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49760 Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com> Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com> Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_env_setup/py/pw_env_setup/env_setup.py b/pw_env_setup/py/pw_env_setup/env_setup.py index 38f1e9b..4d53f45 100755 --- a/pw_env_setup/py/pw_env_setup/env_setup.py +++ b/pw_env_setup/py/pw_env_setup/env_setup.py
@@ -33,6 +33,7 @@ import shutil import subprocess import sys +import time # TODO(pwbug/67): Remove import hacks once the oxidized prebuilt binaries are # proven stable for first-time bootstrapping. For now, continue to support @@ -129,8 +130,17 @@ def ok(self): return self._status in {_Result.Status.DONE, _Result.Status.SKIPPED} - def status_str(self): - return self._status + def status_str(self, duration=None): + if not duration: + return self._status + + duration_parts = [] + if duration > 60: + minutes = int(duration // 60) + duration %= 60 + duration_parts.append('{}m'.format(minutes)) + duration_parts.append('{:.1f}s'.format(duration)) + return '{} ({})'.format(self._status, ''.join(duration_parts)) def messages(self): return self._messages @@ -317,11 +327,13 @@ newline=False, ) + start = time.time() spin = spinner.Spinner() with spin(): result = step(spin) + stop = time.time() - self._log(result.status_str()) + self._log(result.status_str(stop - start)) self._env.echo(result.status_str()) for message in result.messages():