refactor(flake): split root output wiring

This commit was merged in pull request #77.
This commit is contained in:
2026-09-19 16:19:55 -04:00
parent addcf7ca8e
commit 4b9beae501
7 changed files with 80 additions and 48 deletions

41
src/flake/apps.nix Normal file
View File

@@ -0,0 +1,41 @@
{
inputs,
lib,
formatter,
system,
}:
let
pkgs = inputs.nixpkgs.legacyPackages.${system};
in
{
fix = {
type = "app";
program = lib.getExe (
pkgs.writeShellApplication {
name = "fix";
runtimeInputs = [
formatter
pkgs.statix
pkgs.deadnix
];
text = ''
treefmt
statix fix \
--ignore 'configs/nixos/hosts/*/hardware-configuration.nix' \
--ignore 'src/xatu/testdata/**' \
--ignore third_party \
.
deadnix --edit \
--exclude \
configs/nixos/hosts/neogaia/hardware-configuration.nix \
configs/nixos/hosts/pikachu/hardware-configuration.nix \
configs/nixos/hosts/zeus/hardware-configuration.nix \
src/xatu/testdata \
third_party \
-- .
treefmt
'';
}
);
};
}

34
src/flake/default.nix Normal file
View File

@@ -0,0 +1,34 @@
{
lib,
inputs,
self,
root,
system,
}:
let
dotfiles = import ../dotfiles {
inherit
inputs
lib
self
;
root = root + "/configs/nixos";
};
in
{
formatter.${system} =
(import ./formatter.nix {
inherit inputs system;
}).config.build.wrapper;
apps.${system} = import ./apps.nix {
inherit
inputs
lib
system
;
formatter = self.formatter.${system};
};
inherit (dotfiles) nixosConfigurations;
}

12
src/flake/formatter.nix Normal file
View File

@@ -0,0 +1,12 @@
{ inputs, system }:
inputs.treefmt-nix.lib.evalModule inputs.nixpkgs.legacyPackages.${system} {
projectRootFile = "flake.nix";
programs.nixfmt.enable = true;
settings.formatter.nixfmt.excludes = [
"configs/nixos/hosts/*/hardware-configuration.nix"
"src/xatu/testdata/*.nix"
"third_party/**"
];
}