pw_env_setup: Increase CIPD logging

Change-Id: Ifebdf36fce25a2b757b76311b5e7d5cc4bb4ec3c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49340
Pigweed-Auto-Submit: Rob Mohr <mohrr@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Michael Spang <spang@google.com>
diff --git a/pw_env_setup/py/pw_env_setup/cipd_setup/update.py b/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
index 41b5b0e..ef91b28 100755
--- a/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
+++ b/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
@@ -28,7 +28,6 @@
 import re
 import subprocess
 import sys
-import tempfile
 
 
 def parse(argv=None):
@@ -229,32 +228,35 @@
             root_install_dir,
             os.path.basename(os.path.splitext(package_file)[0]))
 
+        name = os.path.basename(install_dir)
+
         cmd = [
             cipd,
             'ensure',
             '-ensure-file', ensure_file,
             '-root', install_dir,
-            '-log-level', 'warning',
+            '-log-level', 'debug',
+            '-json-output',
+            os.path.join(root_install_dir, '{}-output.json'.format(name)),
             '-cache-dir', cache_dir,
             '-max-threads', '0',  # 0 means use CPU count.
         ]  # yapf: disable
 
         # TODO(pwbug/135) Use function from common utility module.
-        with tempfile.TemporaryFile(mode='w+') as temp:
-            print(*cmd, file=temp)
-            try:
+        log = os.path.join(root_install_dir, '{}.log'.format(name))
+        try:
+            with open(log, 'w') as outs:
+                print(*cmd, file=outs)
                 subprocess.check_call(cmd,
-                                      stdout=temp,
+                                      stdout=outs,
                                       stderr=subprocess.STDOUT)
-            except subprocess.CalledProcessError:
-                temp.seek(0)
-                sys.stderr.write(temp.read())
+        except subprocess.CalledProcessError:
+            with open(log, 'r') as ins:
+                sys.stderr.write(ins.read())
                 raise
 
         # Set environment variables so tools can later find things under, for
         # example, 'share'.
-        name = os.path.basename(install_dir)
-
         if env_vars:
             # Some executables get installed at top-level and some get
             # installed under 'bin'.