Fediversity/flake.nix

75 lines
1.9 KiB
Nix
Raw Permalink Normal View History

2024-11-13 22:41:34 +01:00
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
flake-parts.url = "github:hercules-ci/flake-parts";
git-hooks.url = "github:cachix/git-hooks.nix";
2024-11-13 22:59:51 +01:00
disko.url = "github:nix-community/disko";
nixops4.url = "github:nixops4/nixops4";
nixops4-nixos.url = "github:nixops4/nixops4/eval";
2024-11-13 22:41:34 +01:00
};
outputs =
inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
systems = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
2024-11-14 01:10:00 +01:00
imports = [
inputs.git-hooks.flakeModule
2024-11-13 22:59:51 +01:00
inputs.nixops4-nixos.modules.flake.default
2024-11-14 01:10:00 +01:00
2024-11-13 22:59:51 +01:00
./deployment/flake-part.nix
./infra/flake-part.nix
2024-11-14 01:10:00 +01:00
./services/flake-part.nix
];
2024-11-13 22:41:34 +01:00
perSystem =
2024-11-13 22:59:51 +01:00
{
config,
pkgs,
inputs',
...
}:
2024-11-13 22:41:34 +01:00
{
formatter = pkgs.nixfmt-rfc-style;
pre-commit.settings.hooks =
## Not everybody might want pre-commit hooks, so we make them
## opt-in. Maybe one day we will decide to have them everywhere.
let
inherit (builtins) concatStringsSep;
optin = [
"deployment"
"infra"
"services"
];
2024-11-13 22:41:34 +01:00
files = "^((" + concatStringsSep "|" optin + ")/.*\\.nix|[^/]*\\.nix)$";
in
{
nixfmt-rfc-style = {
enable = true;
inherit files;
};
deadnix = {
enable = true;
inherit files;
};
};
2024-11-14 01:10:00 +01:00
devShells.default = pkgs.mkShell {
2024-11-13 22:59:51 +01:00
packages = [
pkgs.nil
inputs'.nixops4.packages.default
];
2024-11-14 01:10:00 +01:00
shellHook = config.pre-commit.installationScript;
};
2024-11-13 22:41:34 +01:00
};
};
}