diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..29da48d --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +watch_file shell.nix +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f9a759c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.direnv +.pre-commit-config.yaml diff --git a/flake.lock b/flake.lock index 7d7348c..aa0fb59 100644 --- a/flake.lock +++ b/flake.lock @@ -104,6 +104,22 @@ } }, "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" + } + }, + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1733328505, @@ -220,7 +236,7 @@ "stylix", "flake-compat" ], - "gitignore": "gitignore", + "gitignore": "gitignore_2", "nixpkgs": [ "stylix", "nixpkgs" @@ -241,6 +257,27 @@ } }, "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" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "stylix", @@ -496,6 +533,28 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ] + }, + "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": { "inputs": { "auto-cpufreq": "auto-cpufreq", @@ -504,6 +563,7 @@ "nix-index-database": "nix-index-database", "nixpkgs": "nixpkgs", "nvf": "nvf", + "pre-commit-hooks": "pre-commit-hooks", "stylix": "stylix" } }, @@ -536,7 +596,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-compat": "flake-compat", + "flake-compat": "flake-compat_2", "flake-utils": "flake-utils_2", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", diff --git a/flake.nix b/flake.nix index c5c7357..2842a88 100644 --- a/flake.nix +++ b/flake.nix @@ -40,6 +40,12 @@ url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # Add pre commit hooks + pre-commit-hooks = { + url = "github:cachix/pre-commit-hooks.nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { @@ -47,6 +53,7 @@ nixpkgs, home-manager, auto-cpufreq, + pre-commit-hooks, ... } @ inputs: { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { @@ -75,5 +82,9 @@ } ]; }; + devShells.x86_64-linux.default = let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in (import ./shell.nix {inherit pkgs pre-commit-hooks;}); }; } diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..7543241 --- /dev/null +++ b/shell.nix @@ -0,0 +1,11 @@ +{ + pkgs ? import {}, + pre-commit-hooks, + ... +}: let + pre-commit-check = pre-commit-hooks.lib.${pkgs.system}.run { + src = "."; + hooks = {alejandra.enable = true;}; + }; +in + pkgs.mkShell {inherit (pre-commit-check) shellHook;}