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.
This commit is contained in:
parent
e5a7d8f945
commit
775c3c0493
6 changed files with 94 additions and 34 deletions
28
x.ps1
Executable file
28
x.ps1
Executable file
|
@ -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
|
Loading…
Add table
Add a link
Reference in a new issue