mirror of
https://github.com/astral-sh/ruff-action.git
synced 2026-05-15 14:00:13 +02:00
17a2e52c32
Users can now specify the mode of ruff to be 'check' or 'format' using the mode input.
42 lines
912 B
Python
42 lines
912 B
Python
"""GitHub Action for Ruff."""
|
|
|
|
import os
|
|
import re
|
|
import shlex
|
|
import sys
|
|
from pathlib import Path
|
|
from subprocess import run
|
|
|
|
ACTION_PATH = Path(os.environ["GITHUB_ACTION_PATH"])
|
|
ARGS = os.getenv("INPUT_ARGS", default="")
|
|
MODE = os.getenv("INPUT_MODE", default="")
|
|
SRC = os.getenv("INPUT_SRC", default="")
|
|
VERSION = os.getenv("INPUT_VERSION", default="")
|
|
|
|
version_specifier = ""
|
|
if VERSION != "":
|
|
if not re.match(r"v?\d\.\d{1,3}\.\d{1,3}$", VERSION):
|
|
print("VERSION does not match expected pattern")
|
|
sys.exit(1)
|
|
version_specifier = f"=={VERSION}"
|
|
|
|
req = f"ruff{version_specifier}"
|
|
|
|
command = (
|
|
["pipx", "run", req, MODE, *shlex.split(ARGS), *shlex.split(SRC)]
|
|
if MODE == "check"
|
|
else [
|
|
"pipx",
|
|
"run",
|
|
req,
|
|
MODE,
|
|
"--check",
|
|
*shlex.split(ARGS),
|
|
*shlex.split(SRC),
|
|
]
|
|
)
|
|
|
|
proc = run(command)
|
|
|
|
sys.exit(proc.returncode)
|