{ inputs, self, ... }: { perSystem = { lib, pkgs, system, ... }: let mkCheck = prefix: key: value: lib.attrsets.nameValuePair "${prefix}-${key}" value; devshells = lib.attrsets.mapAttrs' (mkCheck "devshell") self.devShells."${system}"; packages = lib.attrsets.mapAttrs' (mkCheck "build") self.packages."${system}"; nixos = let isCurrentSystem = _: conf: conf.pkgs.stdenv.hostPlatform.system == system; nixos = lib.attrsets.filterAttrs isCurrentSystem self.nixosConfigurations; in lib.attrsets.mapAttrs' (mkCheck "nixos") ( lib.attrsets.mapAttrs (_: conf: conf.config.system.build.toplevel) nixos ); in { checks = packages // nixos // devshells // { root-lint = let treefmt = pkgs.callPackage ./_treefmt.nix { treefmt-nix = inputs.treefmt-nix; }; in pkgs.stdenvNoCC.mkDerivation { name = "root-lint"; version = "0.0.1"; src = lib.fileset.toSource { root = ../../.; fileset = lib.fileset.unions [ ../../flake.lock ../../flake.nix ../../README.md ../../root ]; }; buildPhase = '' "${treefmt}/bin/treefmt" --ci touch "$out" ''; }; }; }; }