diff --git a/Makefile b/Makefile index ed049893a243..df31980e4fc6 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ BUILDTYPE ?= Release PYTHON ?= python3 +RUFF ?= tools/pip/site-packages/bin/ruff DESTDIR ?= SIGN ?= PREFIX ?= /usr/local @@ -1694,15 +1695,15 @@ lint-py-build: ## Build resources needed to lint python files. $(PYTHON) -m pip install --upgrade --system --target tools/pip/site-packages ruff==0.13.1 .PHONY: lint-py lint-py-fix lint-py-fix-unsafe -ifneq ("","$(wildcard tools/pip/site-packages/ruff)") +ifneq ("","$(wildcard $(RUFF))") # Lint the Python code with ruff. lint-py: $(info Running Python linter...) - tools/pip/site-packages/bin/ruff check . + $(RUFF) check . lint-py-fix: - tools/pip/site-packages/bin/ruff check . --fix + $(RUFF) check . --fix lint-py-fix-unsafe: - tools/pip/site-packages/bin/ruff check . --fix --unsafe-fixes + $(RUFF) check . --fix --unsafe-fixes else lint-py lint-py-fix lint-py-fix-unsafe: $(warning Python linting with ruff is not available) diff --git a/shell.nix b/shell.nix index 96fcccbc1914..9b4d9da55855 100644 --- a/shell.nix +++ b/shell.nix @@ -141,6 +141,14 @@ pkgs.mkShell { ) ); } + // ( + let + ruff = pkgs.lib.lists.findFirst (p: p.meta.mainProgram == "ruff") null devTools; + in + pkgs.lib.optionalAttrs (ruff != null) { + RUFF = pkgs.lib.getExe ruff; + } + ) // pkgs.lib.optionalAttrs (!withSQLite) { NOSQLITE = "1"; } diff --git a/tools/nix/devTools.nix b/tools/nix/devTools.nix index 474e365ceb4e..0ead37da9108 100644 --- a/tools/nix/devTools.nix +++ b/tools/nix/devTools.nix @@ -7,6 +7,7 @@ pkgs.gh pkgs.git pkgs.jq + pkgs.ruff pkgs.shellcheck ] ++ (