mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-11 23:35:00 +00:00

## Summary This PR adds a release workflow powered by `cargo-dist`. It's similar to the version that's PR'd in Ruff (https://github.com/astral-sh/ruff/pull/9559), with the exception that it doesn't include the Docker build or the "update dependents" step for pre-commit.
39 lines
1 KiB
Python
39 lines
1 KiB
Python
import os
|
|
import sys
|
|
import sysconfig
|
|
|
|
|
|
def find_puffin_bin() -> str:
|
|
"""Return the puffin binary path."""
|
|
|
|
puffin_exe = "puffin" + sysconfig.get_config_var("EXE")
|
|
|
|
path = os.path.join(sysconfig.get_path("scripts"), puffin_exe)
|
|
if os.path.isfile(path):
|
|
return path
|
|
|
|
if sys.version_info >= (3, 10):
|
|
user_scheme = sysconfig.get_preferred_scheme("user")
|
|
elif os.name == "nt":
|
|
user_scheme = "nt_user"
|
|
elif sys.platform == "darwin" and sys._framework:
|
|
user_scheme = "osx_framework_user"
|
|
else:
|
|
user_scheme = "posix_user"
|
|
|
|
path = os.path.join(sysconfig.get_path("scripts", scheme=user_scheme), puffin_exe)
|
|
if os.path.isfile(path):
|
|
return path
|
|
|
|
raise FileNotFoundError(path)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
puffin = os.fsdecode(find_puffin_bin())
|
|
if sys.platform == "win32":
|
|
import subprocess
|
|
|
|
completed_process = subprocess.run([puffin, *sys.argv[1:]])
|
|
sys.exit(completed_process.returncode)
|
|
else:
|
|
os.execvp(puffin, [puffin, *sys.argv[1:]])
|