Skip to content

Commit 1fce6cf

Browse files
committed
fix: use subprocess
1 parent 78ca05f commit 1fce6cf

File tree

3 files changed

+34
-3
lines changed

3 files changed

+34
-3
lines changed

.pre-commit-hooks.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
- id: sync-uv-pre-commit
22
name: Sync uv and pre commit
33
description: Sync uv and pre commit
4-
language: script
5-
entry: "uv run script.py"
4+
language: python
5+
entry: sync_uv_pre_commit
66
minimum_pre_commit_version: "3.5.0"
77
require_serial: true
88
always_run: true

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ classifiers = [
1212
"Programming Language :: Python :: 3.12",
1313
"Programming Language :: Python :: Implementation :: CPython",
1414
]
15-
scripts = { generate_cli_script = "sync_uv_pre_commit.render:generate_script" }
1615
dependencies = [
1716
"packaging",
1817
"pre-commit>=3.5.0",
1918
"tomlkit>=0.13.2",
2019
"typing-extensions>=4.12.2",
2120
]
21+
22+
[project.scripts]
23+
generate_cli_script = "sync_uv_pre_commit.render:generate_script"
24+
sync_uv_pre_commit = "sync_uv_pre_commit.script:main"
25+
2226
[dependency-groups]
2327
dev = [
2428
"ruff==0.8.4",

src/sync_uv_pre_commit/script.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from __future__ import annotations
2+
3+
import subprocess
4+
import sys
5+
from pathlib import Path
6+
7+
from sync_uv_pre_commit.log import ExitCode, logger
8+
9+
WORKSPACE = Path(__file__).parent.parent.parent
10+
11+
12+
def main() -> None: # noqa: D103
13+
process = subprocess.run( # noqa: S603
14+
["uv", "run", str(WORKSPACE / "script.py")], # noqa: S607
15+
check=False,
16+
capture_output=True,
17+
text=True,
18+
)
19+
try:
20+
process.check_returncode()
21+
except subprocess.CalledProcessError as exc:
22+
logger.error("error: %s", exc.stderr)
23+
if exc.returncode == ExitCode.MISSING.value:
24+
sys.exit(ExitCode.MISSING)
25+
if exc.returncode == ExitCode.PARSING.value:
26+
sys.exit(ExitCode.PARSING)
27+
sys.exit(ExitCode.UNKNOWN)

0 commit comments

Comments
 (0)