diff --git a/flake-module.nix b/flake-module.nix new file mode 100644 index 00000000..3c846c53 --- /dev/null +++ b/flake-module.nix @@ -0,0 +1,52 @@ +{inputs, ...}: { + imports = [ + inputs.pre-commit-hooks.flakeModule + ./nixos/flake-module.nix + ./home-manager/flake-module.nix + ./packages/flake-module.nix + ./overlays/flake-module.nix + ]; + systems = ["x86_64-linux"]; + perSystem = { + inputs', + config, + lib, + pkgs, + ... + }: { + devShells = { + default = pkgs.mkShell { + shellHook = config.pre-commit.installationScript; + }; + }; + checks = { + system-checks = pkgs.recursiveLinkFarm "all-configs" { + nixos-configurations = lib.mapAttrs (_: config: config.config.system.build.toplevel) config.flake.nixosConfigurations; + home-manager-configurations = config.flake.homeModes; + }; + }; + + pre-commit = { + pkgs = inputs'.nixos-unstable.legacyPackages; + check.enable = true; + settings = { + settings.ormolu.defaultExtensions = [ + "TypeApplications" + "BangPatterns" + "ImportQualifiedPost" + "BlockArguments" + ]; + hooks = { + hlint.enable = true; + alejandra.enable = true; + nix-linter.enable = false; # Too many false positives for now + statix.enable = true; + fourmolu.enable = true; + shellcheck.enable = true; + cabal-fmt.enable = true; + dhall-format.enable = true; + }; + }; + }; + }; +} diff --git a/flake.nix b/flake.nix index b69e1db4..af4e72b4 100644 --- a/flake.nix +++ b/flake.nix @@ -59,62 +59,6 @@ }; }; - outputs = inputs @ { - nixos-hardware, - self, - ... - }: - inputs.flake-parts.lib.mkFlake {inherit inputs;} { - imports = [ - inputs.pre-commit-hooks.flakeModule - ./nixos/flake-parts.nix - ./home-manager/flake-parts.nix - ./packages/flake-parts.nix - ./overlays/flake-parts.nix - ]; - systems = ["x86_64-linux"]; - perSystem = { - self', - inputs', - config, - lib, - pkgs, - ... - }: { - devShells = { - default = pkgs.mkShell { - shellHook = config.pre-commit.installationScript; - }; - }; - checks = { - system-checks = pkgs.recursiveLinkFarm "all-configs" { - nixos-configurations = lib.mapAttrs (_: config: config.config.system.build.toplevel) self.nixosConfigurations; - home-manager-configurations = self.homeModes; - }; - }; - - pre-commit = { - pkgs = inputs'.nixos-unstable.legacyPackages; - check.enable = true; - settings = { - settings.ormolu.defaultExtensions = [ - "TypeApplications" - "BangPatterns" - "ImportQualifiedPost" - "BlockArguments" - ]; - hooks = { - hlint.enable = true; - alejandra.enable = true; - nix-linter.enable = false; # Too many false positives for now - statix.enable = true; - fourmolu.enable = true; - shellcheck.enable = true; - cabal-fmt.enable = true; - dhall-format.enable = true; - }; - }; - }; - }; - }; + outputs = inputs @ {nixos-hardware, ...}: + inputs.flake-parts.lib.mkFlake {inherit inputs;} (import ./flake-module.nix); } diff --git a/home-manager/flake-parts.nix b/home-manager/flake-module.nix similarity index 100% rename from home-manager/flake-parts.nix rename to home-manager/flake-module.nix diff --git a/nixos/flake-parts.nix b/nixos/flake-module.nix similarity index 100% rename from nixos/flake-parts.nix rename to nixos/flake-module.nix diff --git a/overlays/flake-parts.nix b/overlays/flake-module.nix similarity index 94% rename from overlays/flake-parts.nix rename to overlays/flake-module.nix index 4ef4003f..a4045bb0 100644 --- a/overlays/flake-parts.nix +++ b/overlays/flake-module.nix @@ -22,7 +22,7 @@ pathToOverlay = n: overlayPath + ("/" + n); isNixFile = n: builtins.match ".*\\.nix" n != null; isNixDir = n: builtins.pathExists (pathToOverlay n + "/default.nix"); - notDefault = n: n != "flake-parts.nix"; + notDefault = n: n != "flake-module.nix"; isOverlay = n: (isNixDir n || isNixFile n) && notDefault n; overlays = builtins.filter isOverlay candidates; importOverlay = n: import (pathToOverlay n); diff --git a/packages/flake-parts.nix b/packages/flake-module.nix similarity index 100% rename from packages/flake-parts.nix rename to packages/flake-module.nix