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():