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

View File

@@ -76,10 +76,10 @@
outputs =
{ self, nixpkgs, ... }@inputs:
import ./src/dotfiles {
import ./src/flake {
inherit inputs self;
inherit (nixpkgs) lib;
root = ./configs/nixos;
root = ./.;
system = "x86_64-linux";
};
}

View File

@@ -1,30 +0,0 @@
{
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 .
deadnix --edit --exclude configs/nixos/hosts/*/hardware-configuration.nix -- .
treefmt
'';
}
);
};
}

View File

@@ -3,7 +3,6 @@
inputs,
self,
root,
system,
}:
let
util = import ./util.nix { inherit lib; };
@@ -41,20 +40,6 @@ let
};
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};
};
nixosConfigurations = import ./hosts.nix {
inherit
inputs

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;
}

View File

@@ -6,5 +6,7 @@ inputs.treefmt-nix.lib.evalModule inputs.nixpkgs.legacyPackages.${system} {
settings.formatter.nixfmt.excludes = [
"configs/nixos/hosts/*/hardware-configuration.nix"
"src/xatu/testdata/*.nix"
"third_party/**"
];
}

View File

@@ -5,7 +5,7 @@
### Rule
Add flake inputs in `flake.nix`.
Put new flake output implementation in `src/dotfiles/default.nix`.
Put new flake output implementation in `src/flake/default.nix`.
Use `flake.nix` to pass inputs into that implementation.
### Rationale