Files
ruff/action/main.py
T
Yoshihisa Mochihara 17a2e52c32 support ruff mode Argument
Users can now specify the mode of ruff to be 'check' or 'format' using the mode input.
2024-03-13 00:07:19 +01:00

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)