{inputs, ...}: { perSystem = { lib, system, pkgs, ... }: let inherit (inputs) advisory-db crane fenix; craneLib = crane.mkLib pkgs; src = craneLib.cleanCargoSource ../.; commonArgs = { inherit src; strictDeps = true; }; craneLibLlvmTools = craneLib.overrideToolchain (fenix.packages.${system}.complete.withComponents [ "cargo" "llvm-tools" "rustc" ]); cargoArtifacts = craneLib.buildDepsOnly commonArgs; vuw-scraper = craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; }); in { checks = { inherit vuw-scraper; vuw-scraper-clippy = craneLib.cargoClippy (commonArgs // { inherit cargoArtifacts; cargoClippyExtraArgs = "--all-targets -- --deny warnings"; }); vuw-scraper-doc = craneLib.cargoDoc (commonArgs // { inherit cargoArtifacts; }); vuw-scraper-audit = craneLib.cargoAudit { inherit src advisory-db; }; vuw-scraper-nextest = craneLib.cargoNextest (commonArgs // { inherit cargoArtifacts; partitions = 1; partitionType = "count"; }); }; packages = { default = vuw-scraper; } // lib.optionalAttrs (!pkgs.stdenv.isDarwin) { vuw-scraper-llvm-coverage = craneLibLlvmTools.cargoLlvmCov (commonArgs // { inherit cargoArtifacts; }); }; }; }