pw_env_setup: Allow disabling spinner

Change-Id: Ic5444577bb1caf949f715f7e774b4960d641c0d8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/29160
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_cli/py/pw_cli/env.py b/pw_cli/py/pw_cli/env.py
index eef188d..7b03e7f 100644
--- a/pw_cli/py/pw_cli/env.py
+++ b/pw_cli/py/pw_cli/env.py
@@ -43,6 +43,9 @@
 
     parser.add_allowed_suffix('_CIPD_INSTALL_DIR')
 
+    parser.add_var('PW_ENVSETUP_DISABLE_SPINNER',
+                   type=envparse.strict_bool,
+                   default=False)
     parser.add_var('PW_DOCTOR_SKIP_CIPD_CHECKS')
     parser.add_var('PW_ACTIVATE_SKIP_CHECKS',
                    type=envparse.strict_bool,
diff --git a/pw_env_setup/py/pw_env_setup/spinner.py b/pw_env_setup/py/pw_env_setup/spinner.py
index 5060395..44990be 100644
--- a/pw_env_setup/py/pw_env_setup/spinner.py
+++ b/pw_env_setup/py/pw_env_setup/spinner.py
@@ -14,10 +14,13 @@
 """Spinner!"""
 
 import contextlib
+import os
 import sys
 import threading
 import time
 
+PW_ENVSETUP_DISABLE_SPINNER = os.environ.get('PW_ENVSETUP_DISABLE_SPINNER')
+
 
 class Spinner(object):  # pylint: disable=useless-object-inheritance
     """Spinner!"""
@@ -39,11 +42,17 @@
             i = (i + 1) % len(chars)
 
     def start(self):
+        if PW_ENVSETUP_DISABLE_SPINNER:
+            return
+
         self._done = False
         self._thread = threading.Thread(target=self._spin)
         self._thread.start()
 
     def stop(self):
+        if PW_ENVSETUP_DISABLE_SPINNER:
+            return
+
         assert self._thread
         self._done = True
         self._thread.join()