{ self, ... }: { perSystem = { lib, pkgs, ... }: let package = pkgs.writers.writePython3Bin "list-plugins" { # Disable flake8 checks that are incompatible with the ruff ones flakeIgnore = [ # line too long "E501" # line break before binary operator "W503" ]; } (builtins.readFile ./list-plugins.py); in { packages.list-plugins = package; checks.list-plugins-test = pkgs.runCommand "list-plugins-test" { nativeBuildInputs = [ package ]; } '' list-plugins --root-path ${self} > $out ''; devshells.default.commands = [ { name = "list-plugins"; command = ''${lib.getExe package} "$@"''; help = "List plugins and get implementation infos"; } ]; }; }