From 3d3c3f78444865efef81fd748106940643445a48 Mon Sep 17 00:00:00 2001 From: alexion Date: Tue, 15 Sep 2026 23:38:05 -0400 Subject: [PATCH] refactor(nix): split formatter and app outputs --- flake.nix | 5 ++++- src/dotfiles/apps.nix | 19 ++++--------------- src/dotfiles/default.nix | 25 +++++++++++++++---------- src/dotfiles/formatter.nix | 14 ++++++++++++++ 4 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 src/dotfiles/formatter.nix diff --git a/flake.nix b/flake.nix index 07078c2..028d4dc 100644 --- a/flake.nix +++ b/flake.nix @@ -76,8 +76,11 @@ outputs = { self, nixpkgs, ... }@inputs: + let + system = "x86_64-linux"; + in import ./src/dotfiles { - inherit inputs self; + inherit inputs self system; lib = nixpkgs.lib; root = ./configs/nixos; }; diff --git a/src/dotfiles/apps.nix b/src/dotfiles/apps.nix index 4787bd5..4e0c4a4 100644 --- a/src/dotfiles/apps.nix +++ b/src/dotfiles/apps.nix @@ -1,25 +1,16 @@ { inputs, lib, + formatter, + system, }: let - system = "x86_64-linux"; pkgs = inputs.nixpkgs.legacyPackages.${system}; - treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs { - projectRootFile = "flake.nix"; - - programs.nixfmt.enable = true; - - settings.formatter.nixfmt.excludes = [ - "configs/nixos/hosts/*/hardware-configuration.nix" - ]; - }; - styleCheck = pkgs.writeShellApplication { name = "style-check"; runtimeInputs = [ - treefmtEval.config.build.wrapper + formatter pkgs.statix pkgs.deadnix ]; @@ -31,9 +22,7 @@ let }; in { - formatter.${system} = treefmtEval.config.build.wrapper; - - apps.${system}.style-check = { + style-check = { type = "app"; program = lib.getExe styleCheck; }; diff --git a/src/dotfiles/default.nix b/src/dotfiles/default.nix index 1133d6e..920f7c1 100644 --- a/src/dotfiles/default.nix +++ b/src/dotfiles/default.nix @@ -3,6 +3,7 @@ inputs, self, root, + system, }: let util = import ./util.nix { inherit lib; }; @@ -38,18 +39,22 @@ let ; registry = registry.collected; }; + + formatter = import ./formatter.nix { + inherit inputs system; + }; in { - inherit - (import ./apps.nix { - inherit - inputs - lib - ; - }) - apps - formatter - ; + formatter.${system} = formatter; + + apps.${system} = import ./apps.nix { + inherit + inputs + lib + formatter + system + ; + }; nixosConfigurations = import ./hosts.nix { inherit diff --git a/src/dotfiles/formatter.nix b/src/dotfiles/formatter.nix new file mode 100644 index 0000000..a7bbaab --- /dev/null +++ b/src/dotfiles/formatter.nix @@ -0,0 +1,14 @@ +{ inputs, system }: +let + pkgs = inputs.nixpkgs.legacyPackages.${system}; + treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs { + projectRootFile = "flake.nix"; + + programs.nixfmt.enable = true; + + settings.formatter.nixfmt.excludes = [ + "configs/nixos/hosts/*/hardware-configuration.nix" + ]; + }; +in +treefmtEval.config.build.wrapper