From d76325230ca1438cd69f09a247ee9effc27615ff Mon Sep 17 00:00:00 2001 From: Finn Markwitz Date: Sat, 1 Jul 2023 11:12:50 +0000 Subject: [PATCH] Imported Felix flake.nix --- flake.nix | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 2bce647..c687136 100644 --- a/flake.nix +++ b/flake.nix @@ -7,11 +7,64 @@ nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; } - outputs = inputs@{ self, flake-parts, deploy-rs, ... }: - flake-parts.lib.mkFlake { inherit inputs; } { + outputs = inputs@{ self, flake-parts, deploy-rs, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { imports = [ ./machines/configurations.nix + ./images/flake-module.nix inputs.pre-commit-hooks-nix.flakeModule ]; + + systems = [ "x86_64-linux" "aarch64-linux" ]; + + perSystem = { self', inputs', config, pkgs, system, ... }: { + # make pkgs available to all `perSystem` functions + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + # prevent rebuilding deploy-rs everytime when nixpkgs changes + overlays = [ + deploy-rs.overlay + (self: super: { deploy-rs = { inherit (pkgs) deploy-rs; lib = super.deploy-rs.lib; }; }) + ]; + }; + + # enable pre-commit checks + pre-commit.settings = { + hooks = { + shellcheck.enable = true; + nixpkgs-fmt.enable = true; + typos = { + enable = true; + excludes = [ "secrets\\.yaml" ]; + }; + }; + }; + + devShells.default = pkgs.mkShellNoCC { + nativeBuildInputs = [ + inputs'.sops-nix.packages.sops-import-keys-hook + inputs'.deploy-rs.packages.deploy-rs + inputs'.disko.packages.disko + # formatters + pkgs.shellcheck + pkgs.nixpkgs-fmt + pkgs.typos + ]; + shellHook = '' + ${config.pre-commit.installationScript} + ''; + }; + }; + + flake = { + # currently disabled, because this causes rebuilds + # checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; + + deploy = import ./machines/deploy.nix (inputs // { + inherit inputs; + }); + }; + }; + }; } \ No newline at end of file