mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-04-15 18:11:48 +04:00
Fix zipapp build of local version on mac
This commit is contained in:
parent
0b6b7d5af1
commit
d88449e712
2 changed files with 22 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
[metadata]
|
[metadata]
|
||||||
name = pre_commit
|
name = pre_commit
|
||||||
version = 2.20.0
|
version = 2.20.0.post1.dev1
|
||||||
description = A framework for managing and maintaining multi-language pre-commit hooks.
|
description = A framework for managing and maintaining multi-language pre-commit hooks.
|
||||||
long_description = file: README.md
|
long_description = file: README.md
|
||||||
long_description_content_type = text/markdown
|
long_description_content_type = text/markdown
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import base64
|
import base64
|
||||||
|
import configparser
|
||||||
import hashlib
|
import hashlib
|
||||||
import importlib.resources
|
import importlib.resources
|
||||||
import io
|
import io
|
||||||
|
|
@ -60,7 +61,7 @@ def _write_cache_key(version: str, wheeldir: str, dest: str) -> None:
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('version')
|
parser.add_argument('--version', required=False)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
|
@ -70,10 +71,25 @@ def main() -> int:
|
||||||
_msg('building podman image...')
|
_msg('building podman image...')
|
||||||
_exit_if_retv('podman', 'build', '-q', '-t', IMG, HERE)
|
_exit_if_retv('podman', 'build', '-q', '-t', IMG, HERE)
|
||||||
|
|
||||||
|
if args.version:
|
||||||
|
wheel_spec = f'pre_commit=={args.version}'
|
||||||
|
volume_options_for_current_dir = ()
|
||||||
|
version = args.version
|
||||||
|
else:
|
||||||
|
wheel_spec = 'pre_commit'
|
||||||
|
cwd = os.getcwd()
|
||||||
|
volume_options_for_current_dir = ( # type: ignore
|
||||||
|
'--volume', f'{cwd}:{cwd}:ro',
|
||||||
|
)
|
||||||
|
config = configparser.ConfigParser()
|
||||||
|
config.read(f'{cwd}/setup.cfg')
|
||||||
|
version = config['metadata']['version']
|
||||||
|
|
||||||
_msg('populating wheels...')
|
_msg('populating wheels...')
|
||||||
_exit_if_retv(
|
_exit_if_retv(
|
||||||
'podman', 'run', '--rm', '--volume', f'{wheeldir}:/wheels:rw', IMG,
|
'podman', 'run', '--rm', '--volume', f'{wheeldir}:/wheels:rw',
|
||||||
'pip', 'wheel', f'pre_commit=={args.version}', 'setuptools',
|
*volume_options_for_current_dir, IMG,
|
||||||
|
'pip', 'wheel', wheel_spec, 'setuptools',
|
||||||
'--wheel-dir', '/wheels',
|
'--wheel-dir', '/wheels',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -94,9 +110,9 @@ def main() -> int:
|
||||||
shutil.copy(file_lock_py, file_lock_py_dest)
|
shutil.copy(file_lock_py, file_lock_py_dest)
|
||||||
|
|
||||||
_msg('writing CACHE_KEY...')
|
_msg('writing CACHE_KEY...')
|
||||||
_write_cache_key(args.version, wheeldir, tmpdir)
|
_write_cache_key(version, wheeldir, tmpdir)
|
||||||
|
|
||||||
filename = f'pre-commit-{args.version}.pyz'
|
filename = f'pre-commit-{version}.pyz'
|
||||||
_msg(f'writing {filename}...')
|
_msg(f'writing {filename}...')
|
||||||
shebang = '/usr/bin/env python3'
|
shebang = '/usr/bin/env python3'
|
||||||
zipapp.create_archive(tmpdir, filename, interpreter=shebang)
|
zipapp.create_archive(tmpdir, filename, interpreter=shebang)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue