2024-07-07 15:21:08 -04:00
|
|
|
{ lib, inputs, ... }:
|
2024-05-05 19:34:47 +02:00
|
|
|
{
|
2024-07-07 15:23:09 -04:00
|
|
|
imports =
|
|
|
|
[ ./devshell.nix ]
|
|
|
|
++ lib.optional (inputs.git-hooks ? flakeModule) inputs.git-hooks.flakeModule
|
|
|
|
++ lib.optional (inputs.treefmt-nix ? flakeModule) inputs.treefmt-nix.flakeModule;
|
2023-12-06 13:09:26 +01:00
|
|
|
|
2024-05-05 19:34:47 +02:00
|
|
|
perSystem =
|
2024-07-07 15:21:08 -04:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
...
|
|
|
|
}:
|
2024-06-04 16:57:20 +01:00
|
|
|
let
|
|
|
|
fmt = pkgs.nixfmt-rfc-style;
|
|
|
|
in
|
2024-07-07 15:23:09 -04:00
|
|
|
lib.optionalAttrs (inputs.treefmt-nix ? flakeModule) {
|
2024-05-07 16:45:47 +02:00
|
|
|
treefmt.config = {
|
2024-06-04 17:35:37 +01:00
|
|
|
projectRootFile = "flake.nix";
|
2024-05-07 16:45:47 +02:00
|
|
|
|
|
|
|
programs = {
|
2024-06-04 16:57:20 +01:00
|
|
|
nixfmt = {
|
|
|
|
enable = true;
|
|
|
|
package = fmt;
|
|
|
|
};
|
2024-05-07 16:45:47 +02:00
|
|
|
statix.enable = true;
|
|
|
|
};
|
|
|
|
};
|
2024-07-07 15:21:08 -04:00
|
|
|
}
|
|
|
|
// lib.optionalAttrs (inputs.git-hooks ? flakeModule) {
|
2023-12-06 13:09:26 +01:00
|
|
|
pre-commit = {
|
|
|
|
settings.hooks = {
|
2024-05-05 19:34:47 +02:00
|
|
|
nixfmt = {
|
2023-12-06 13:09:26 +01:00
|
|
|
enable = true;
|
2024-06-04 16:57:20 +01:00
|
|
|
package = fmt;
|
2024-05-05 19:39:35 +02:00
|
|
|
};
|
2023-12-06 13:09:26 +01:00
|
|
|
statix = {
|
2024-05-05 19:34:47 +02:00
|
|
|
enable = true;
|
|
|
|
excludes = [ "plugins/lsp/language-servers/rust-analyzer-config.nix" ];
|
2024-05-05 19:39:35 +02:00
|
|
|
};
|
2024-03-07 19:44:13 +01:00
|
|
|
typos.enable = true;
|
2024-05-05 19:34:47 +02:00
|
|
|
};
|
2023-12-06 13:09:26 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|