NixosConfig/flake.nix

56 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.11";
systems.url = "github:nix-systems/default";
git-hooks.url = "github:cachix/git-hooks.nix";
};
outputs =
{
self,
systems,
nixpkgs,
...
}@inputs:
let
forEachSystem = inputs.nixpkgs.lib.genAttrs (import systems);
in
{
formatter = forEachSystem (
system:
let
pkgs = inputs.nixpkgs.legacyPackages.${system};
in
pkgs.treefmt
);
checks = forEachSystem (system: {
pre-commit-check = inputs.git-hooks.lib.${system}.run {
src = ./.;
hooks = {
treefmt.enable = true;
treefmt.settings.formatters = [ inputs.nixpkgs.legacyPackages.${system}.nixfmt ];
statix.enable = true;
deadnix.enable = true;
nil.enable = true;
};
};
});
devShells = forEachSystem (system: {
default =
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (self.checks.${system}.pre-commit-check) shellHook enabledPackages;
in
pkgs.mkShell {
inherit shellHook;
buildInputs = enabledPackages;
};
});
nixosConfigurations = {
vm = nixpkgs.lib.nixosSystem { modules = [ ./systems/vm/configuration.nix ]; };
};
};
}