This commit is contained in:
+14
@@ -0,0 +1,14 @@
|
||||
{
|
||||
perSystem = _: {
|
||||
treefmt = {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
nixfmt.enable = true;
|
||||
yamlfmt.enable = true;
|
||||
shfmt.enable = true;
|
||||
rustfmt.enable = true;
|
||||
taplo.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
perSystem =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
pre-commit = {
|
||||
settings = {
|
||||
hooks = {
|
||||
statix.enable = true;
|
||||
zizmor.enable = true;
|
||||
typos.enable = true;
|
||||
deadnix = {
|
||||
enable = true;
|
||||
settings.edit = true;
|
||||
};
|
||||
fmt = {
|
||||
enable = true;
|
||||
name = "nix fmt";
|
||||
entry = "${lib.getExe config.formatter} --no-cache";
|
||||
};
|
||||
ty = {
|
||||
enable = true;
|
||||
name = "ty check";
|
||||
files = "\\.py$";
|
||||
entry = lib.getExe (
|
||||
pkgs.writeShellScriptBin "ty-check" ''
|
||||
cd tests/
|
||||
${lib.getExe pkgs.uv} run ty check
|
||||
''
|
||||
);
|
||||
};
|
||||
actionlint = {
|
||||
enable = true;
|
||||
files = "^\\.github/workflows/.*\\.(yml|yaml)$";
|
||||
};
|
||||
yamllint = {
|
||||
enable = true;
|
||||
settings.configPath = ".yamllint.yaml";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
perSystem =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
craneLib,
|
||||
pkgs,
|
||||
self',
|
||||
wine-packages,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.pre-commit;
|
||||
in
|
||||
{
|
||||
# Adapted from
|
||||
# https://github.com/cachix/git-hooks.nix/blob/dcf5072734cb576d2b0c59b2ac44f5050b5eac82/flake-module.nix#L66-L78
|
||||
devShells.default = craneLib.devShell {
|
||||
packages = lib.flatten [
|
||||
cfg.settings.enabledPackages
|
||||
cfg.settings.package
|
||||
|
||||
pkgs.uv
|
||||
pkgs.rust-analyzer
|
||||
];
|
||||
|
||||
env = {
|
||||
WINE = lib.getExe self'.packages.wine;
|
||||
WINESERVER = lib.getExe wine-packages.wineserver;
|
||||
WINETRICKS = lib.getExe wine-packages.winetricks;
|
||||
FUSE_OVERLAYFS = lib.getExe pkgs.fuse-overlayfs;
|
||||
GNUTAR = lib.getExe pkgs.gnutar;
|
||||
ZENITY = lib.getExe pkgs.zenity;
|
||||
RSYNC = lib.getExe pkgs.rsync;
|
||||
REGISTRY_PATCHES = (pkgs.callPackage ../packages/registry-patches.nix { }).combined;
|
||||
ON_LINUX = inputs.on-linux.outPath;
|
||||
};
|
||||
|
||||
shellHook = builtins.concatStringsSep "\n" [
|
||||
cfg.installationScript
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user