feat: add clippy and cargo test as dev pre-commit hooks
Splits git hooks into two configurations: a sandbox-safe set for `nix flake check` (rustfmt + commitizen) and a full dev set installed via `nix develop` that also runs clippy (deny warnings) and cargo test.
This commit is contained in:
parent
8e69a6afe8
commit
ec978590c0
1 changed files with 48 additions and 2 deletions
50
flake.nix
50
flake.nix
|
|
@ -141,6 +141,36 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkGitHooksDev =
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = mkPkgs system;
|
||||||
|
toolchain = pkgs.rust-bin.stable.latest.default;
|
||||||
|
in
|
||||||
|
git-hooks.lib.${system}.run {
|
||||||
|
src = ./.;
|
||||||
|
hooks = {
|
||||||
|
rustfmt = {
|
||||||
|
enable = true;
|
||||||
|
package = toolchain;
|
||||||
|
};
|
||||||
|
clippy = {
|
||||||
|
enable = true;
|
||||||
|
package = toolchain;
|
||||||
|
settings.denyWarnings = true;
|
||||||
|
};
|
||||||
|
cargo-test = {
|
||||||
|
enable = true;
|
||||||
|
name = "cargo test";
|
||||||
|
entry = "${toolchain}/bin/cargo test";
|
||||||
|
pass_filenames = false;
|
||||||
|
language = "system";
|
||||||
|
files = "\\.(rs|toml)$";
|
||||||
|
};
|
||||||
|
commitizen.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
mkMuslCraneLib =
|
mkMuslCraneLib =
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
|
@ -199,6 +229,21 @@
|
||||||
in
|
in
|
||||||
craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; });
|
craneLib.buildPackage (commonArgs // { inherit cargoArtifacts; });
|
||||||
|
|
||||||
|
mkZedExtensionZip =
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = mkPkgs system;
|
||||||
|
zed-extension = mkZedExtension system;
|
||||||
|
in
|
||||||
|
pkgs.runCommand "streamd-zed-extension-${version}.zip" {
|
||||||
|
nativeBuildInputs = [ pkgs.zip ];
|
||||||
|
} ''
|
||||||
|
mkdir -p streamd-zed-extension
|
||||||
|
cp ${zed-extension}/extension.toml streamd-zed-extension/
|
||||||
|
cp ${zed-extension}/extension.wasm streamd-zed-extension/
|
||||||
|
zip -r $out streamd-zed-extension
|
||||||
|
'';
|
||||||
|
|
||||||
mkStreamdDeb =
|
mkStreamdDeb =
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
|
@ -250,9 +295,10 @@
|
||||||
streamd-deb = mkStreamdDeb system;
|
streamd-deb = mkStreamdDeb system;
|
||||||
streamd-windows = mkStreamdWindows system;
|
streamd-windows = mkStreamdWindows system;
|
||||||
zed-extension = mkZedExtension system;
|
zed-extension = mkZedExtension system;
|
||||||
|
zed-extension-zip = mkZedExtensionZip system;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
inherit streamd streamd-musl streamd-deb streamd-windows zed-extension;
|
inherit streamd streamd-musl streamd-deb streamd-windows zed-extension zed-extension-zip;
|
||||||
default = streamd;
|
default = streamd;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
@ -339,7 +385,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
${(mkGitHooksCheck system).shellHook}
|
${(mkGitHooksDev system).shellHook}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue