diff options
| author | Joshua Nelson <jnelson@cloudflare.com> | 2022-07-31 14:02:31 -0500 |
|---|---|---|
| committer | Joshua Nelson <jnelson@cloudflare.com> | 2022-08-08 14:48:11 -0500 |
| commit | 775c3c0493e9a383a7f1c521b06d36f2e3d0d886 (patch) | |
| tree | 1ce415b145ade3c3c926e9d671b3e22ec7e5e44b /x.ps1 | |
| parent | e5a7d8f945f4259fb6b8c4953a65248243c054d1 (diff) | |
| download | rust-775c3c0493e9a383a7f1c521b06d36f2e3d0d886.tar.gz rust-775c3c0493e9a383a7f1c521b06d36f2e3d0d886.zip | |
Add `x.sh` and `x.ps1` shell scripts
This is a more ambitious version of https://github.com/rust-lang/rust/pull/98716. It still changes the shebang back to python3, for compatibility with non-Unix systems, but also adds alternative entrypoints for systems without `python3` installed. These scripts will be necessary for the rust entrypoint (#94829), so I see little downside in adding them early.
Diffstat (limited to 'x.ps1')
| -rwxr-xr-x | x.ps1 | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/x.ps1 b/x.ps1 new file mode 100755 index 00000000000..1225443735f --- /dev/null +++ b/x.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh + +# See x.sh for why these scripts exist. + +$xpy = Join-Path $PSScriptRoot x.py +# Start-Process for some reason splits arguments on spaces. (Isn't powershell supposed to be simpler than bash?) +# Double-quote all the arguments so it doesn't do that. +$xpy_args = @("""$xpy""") +foreach ($arg in $args) { + $xpy_args += """$arg""" +} + +foreach ($python in "py", "python3", "python", "python2") { + # NOTE: this only tests that the command exists in PATH, not that it's actually + # executable. The latter is not possible in a portable way, see + # https://github.com/PowerShell/PowerShell/issues/12625. + if (Get-Command $python -ErrorAction SilentlyContinue) { + if ($python -eq "py") { + # Use python3, not python2 + $xpy_args = @("-3") + $xpy_args + } + $process = Start-Process -NoNewWindow -Wait -PassThru $python $xpy_args + Exit $process.ExitCode + } +} + +Write-Error "${PSCommandPath}: error: did not find python installed" +Exit 1 |
