webnsupdate/flake-modules/package.nix
Jalil David Salamé Messina 95cfb31b9a
All checks were successful
/ build (push) Successful in 1s
/ check-integration-tests (push) Successful in 11s
/ report-size (push) Successful in 3s
feat: use rust-overlay to get the rust binaries
This should ensure I use my own rust version instead of the one in
nixpkgs.
2025-05-16 18:36:44 +02:00

74 lines
1.7 KiB
Nix

{ inputs, ... }:
let
inherit (inputs) crane;
in
{
flake.overlays.default = final: prev: {
webnsupdate = prev.callPackage ../default.nix {
inherit crane;
pkgSrc = inputs.self;
};
};
perSystem =
{
system,
pkgs,
lib,
...
}:
let
craneLib = (crane.mkLib pkgs).overrideToolchain (pkgs: pkgs.rust-bin.stable.latest.default);
src = craneLib.cleanCargoSource inputs.self;
commonArgs = {
inherit src;
strictDeps = true;
doCheck = false; # tests will be run in the `checks` derivation
NEXTEST_HIDE_PROGRESS_BAR = 1;
NEXTEST_FAILURE_OUTPUT = "immediate-final";
nativeBuildInputs = [ pkgs.mold ];
meta = {
license = lib.licenses.mit;
homepage = "https://github.com/jalil-salame/webnsupdate";
mainProgram = "webnsupdate";
};
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
withArtifacts = lib.mergeAttrsList [
commonArgs
{ inherit cargoArtifacts; }
];
webnsupdate = pkgs.callPackage ../default.nix {
inherit crane;
pkgSrc = src;
};
in
{
# Consume the rust-rust-overlay
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ inputs.rust-overlay.overlays.default ];
};
checks = {
nextest = craneLib.cargoNextest withArtifacts;
clippy = craneLib.cargoClippy (
lib.mergeAttrsList [
withArtifacts
{ cargoClippyExtraArgs = "--all-targets -- --deny warnings"; }
]
);
};
packages = {
inherit webnsupdate;
inherit (pkgs) git-cliff;
default = webnsupdate;
};
};
}