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.
This commit is contained in:
Matthias Krüger 2022-11-14 19:26:18 +01:00 committed by GitHub
commit aa29a8b4c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,7 +8,8 @@
//! `x.py`, in that order of preference. //! `x.py`, in that order of preference.
use std::{ use std::{
env, io, env::{self, consts::EXE_EXTENSION},
io,
process::{self, Command, ExitStatus}, process::{self, Command, ExitStatus},
}; };
@ -27,12 +28,12 @@ fn python() -> &'static str {
for dir in env::split_paths(&val) { for dir in env::split_paths(&val) {
// `python` should always take precedence over python2 / python3 if it exists // `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; return PYTHON;
} }
python2 |= dir.join(PYTHON2).exists(); python2 |= dir.join(PYTHON2).with_extension(EXE_EXTENSION).exists();
python3 |= dir.join(PYTHON3).exists(); python3 |= dir.join(PYTHON3).with_extension(EXE_EXTENSION).exists();
} }
// try 3 before 2 // try 3 before 2