about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTharun Suresh <stharunvikram@gmail.com>2023-02-08 13:37:15 +0530
committerTharun Suresh <stharunvikram@gmail.com>2023-02-08 13:37:15 +0530
commit4259073e9a5bedd25f4860ddec2be55d995b4b9d (patch)
tree93649d6e92c69c1c46f004be44360ebd8214006b
parent5dd0e1b7ae7bcddce28658487602e8a077737a3e (diff)
downloadrust-4259073e9a5bedd25f4860ddec2be55d995b4b9d.tar.gz
rust-4259073e9a5bedd25f4860ddec2be55d995b4b9d.zip
x.py fails all downloads that use a tempdir with snap curl #107722
-rw-r--r--src/bootstrap/bootstrap.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
index 5b19a658fb5..c298817895c 100644
--- a/src/bootstrap/bootstrap.py
+++ b/src/bootstrap/bootstrap.py
@@ -87,14 +87,16 @@ def _download(path, url, probably_big, verbose, exception):
         # If curl is not present on Win32, we should not sys.exit
         #   but raise `CalledProcessError` or `OSError` instead
         require(["curl", "--version"], exception=platform_is_win32)
-        run(["curl", option,
-             "-L", # Follow redirect.
-             "-y", "30", "-Y", "10",    # timeout if speed is < 10 bytes/sec for > 30 seconds
-             "--connect-timeout", "30",  # timeout if cannot connect within 30 seconds
-             "--retry", "3", "-Sf", "-o", path, url],
-            verbose=verbose,
-            exception=True, # Will raise RuntimeError on failure
-        )
+        with open(path, "wb") as outfile:
+            run(["curl", option,
+                "-L", # Follow redirect.
+                "-y", "30", "-Y", "10",    # timeout if speed is < 10 bytes/sec for > 30 seconds
+                "--connect-timeout", "30",  # timeout if cannot connect within 30 seconds
+                "--retry", "3", "-Sf", url],
+                stdout=outfile,    #Implements cli redirect operator '>'
+                verbose=verbose,
+                exception=True, # Will raise RuntimeError on failure
+            )
     except (subprocess.CalledProcessError, OSError, RuntimeError):
         # see http://serverfault.com/questions/301128/how-to-download
         if platform_is_win32: