chore(nix): add pre-commit checks

This commit is contained in:
Ananth Venkatesh 2025-02-01 03:42:40 -05:00
parent 0f4436787c
commit be8e419f66
Signed by: ananthv
GPG key ID: 4BB578E748CFE4FF
3 changed files with 99 additions and 7 deletions

1
.pre-commit-config.yaml Symbolic link
View file

@ -0,0 +1 @@
/nix/store/gnnangzf73g2b665rmhwblqydx18hjlm-pre-commit-config.json

View file

@ -44,6 +44,43 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"mkElmDerivation": { "mkElmDerivation": {
"inputs": { "inputs": {
"elm-spa": "elm-spa", "elm-spa": "elm-spa",
@ -51,11 +88,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1737249952, "lastModified": 1737854574,
"narHash": "sha256-bWOrcJUIW5q9BEmdeaE5XPnHiWuhujeFM23EweNMuO0=", "narHash": "sha256-GIh8IAIjJ3BkqSKifdXcnrkJgY4diipcMZ1itmwiFyw=",
"owner": "jeslie0", "owner": "jeslie0",
"repo": "mkElmDerivation", "repo": "mkElmDerivation",
"rev": "dd8538d8bcddcb7245cfdffffdf8118b0013dc64", "rev": "88b3923af364826b39428aff3431857a2b9d8699",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -82,11 +119,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1737632463, "lastModified": 1738142207,
"narHash": "sha256-38J9QfeGSej341ouwzqf77WIHAScihAKCt8PQJ+NH28=", "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "0aa475546ed21629c4f5bbf90e38c846a99ec9e9", "rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -96,6 +133,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1730768919,
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"npm-fix": { "npm-fix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -134,10 +187,31 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1737465171,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"mkElmDerivation": "mkElmDerivation", "mkElmDerivation": "mkElmDerivation",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"utils": "utils" "utils": "utils"
} }
}, },

View file

@ -5,6 +5,7 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
utils.url = "github:numtide/flake-utils"; utils.url = "github:numtide/flake-utils";
mkElmDerivation.url = "github:jeslie0/mkElmDerivation"; mkElmDerivation.url = "github:jeslie0/mkElmDerivation";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
}; };
outputs = outputs =
@ -13,6 +14,7 @@
nixpkgs, nixpkgs,
utils, utils,
mkElmDerivation, mkElmDerivation,
pre-commit-hooks,
}: }:
utils.lib.eachDefaultSystem ( utils.lib.eachDefaultSystem (
system: system:
@ -26,10 +28,13 @@
devShells.default = devShells.default =
with pkgs; with pkgs;
mkShell { mkShell {
buildInputs = [ inherit (self.checks.${system}.pre-commit-check) shellHook;
buildInputs = self.checks.${system}.pre-commit-check.enabledPackages ++ [
elmPackages.elm elmPackages.elm
elmPackages.elm-test elmPackages.elm-test
elmPackages.elm-format elmPackages.elm-format
elmPackages.elm-review
entr entr
]; ];
}; };
@ -50,6 +55,18 @@
}; };
}; };
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
nixfmt-rfc-style.enable = true;
elm-format.enable = true;
# elm-review.enable = true;
# elm-test.enable = true;
};
};
};
formatter = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style; formatter = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
} }
); );