about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-11-14 19:26:18 +0100
committerGitHub <noreply@github.com>2022-11-14 19:26:18 +0100
commitaa29a8b4c71c18f736ddf0848ff388642861a419 (patch)
treeb6e7df424610fe7c23af25b135f67be684c5cbdb /src
parent5763fa74f0bda2fe87003360f9059e67c1b8dcf5 (diff)
parent56dfb70d8d1103e49dfe6feb337ef1f1bb20ff88 (diff)
downloadrust-aa29a8b4c71c18f736ddf0848ff388642861a419.tar.gz
rust-aa29a8b4c71c18f736ddf0848ff388642861a419.zip
Rollup merge of #104350 - SparkyPotato:fix-x-wrapper, r=jyn514
Fix x finding Python on Windows

`x` searches through the path for `{dir}/python{2|3}?`, but this fails on Windows because the appropriate path is `{dir}/python.exe`.

This PR adds the expected `.exe` extension on Windows while searching.
Diffstat (limited to 'src')
-rw-r--r--src/tools/x/src/main.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/tools/x/src/main.rs b/src/tools/x/src/main.rs
index 9187c3551d7..02c364dabf9 100644
--- a/src/tools/x/src/main.rs
+++ b/src/tools/x/src/main.rs
@@ -8,7 +8,8 @@
 //! `x.py`, in that order of preference.
 
 use std::{
-    env, io,
+    env::{self, consts::EXE_EXTENSION},
+    io,
     process::{self, Command, ExitStatus},
 };
 
@@ -27,12 +28,12 @@ fn python() -> &'static str {
 
     for dir in env::split_paths(&val) {
         // `python` should always take precedence over python2 / python3 if it exists
-        if dir.join(PYTHON).exists() {
+        if dir.join(PYTHON).with_extension(EXE_EXTENSION).exists() {
             return PYTHON;
         }
 
-        python2 |= dir.join(PYTHON2).exists();
-        python3 |= dir.join(PYTHON3).exists();
+        python2 |= dir.join(PYTHON2).with_extension(EXE_EXTENSION).exists();
+        python3 |= dir.join(PYTHON3).with_extension(EXE_EXTENSION).exists();
     }
 
     // try 3 before 2