From 59969b9ec877b81d4a69cd9ebe7551e7ea5f6205 Mon Sep 17 00:00:00 2001 From: Albert Date: Sun, 20 Jul 2025 03:54:00 +0200 Subject: [PATCH] Allow configuring configuration src path in `nixosConfig` Co-authored-by: h7x4 --- flake.nix | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index 72f2ab9..019e361 100644 --- a/flake.nix +++ b/flake.nix @@ -55,37 +55,50 @@ nixosConfigurations = let unstablePkgs = nixpkgs-unstable.legacyPackages.x86_64-linux; - nixosConfig = nixpkgs: name: config: lib.nixosSystem (lib.recursiveUpdate - rec { + + nixosConfig = + nixpkgs: + name: + configurationPath: + extraArgs: + lib.nixosSystem (lib.recursiveUpdate + (let system = "x86_64-linux"; + in { + inherit system; + specialArgs = { inherit unstablePkgs inputs; values = import ./values.nix; fp = path: ./${path}; - }; + } // extraArgs.specialArgs or { }; modules = [ - ./hosts/${name}/configuration.nix + configurationPath sops-nix.nixosModules.sops - ] ++ config.modules or []; + ] ++ extraArgs.modules or []; pkgs = import nixpkgs { inherit system; - config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) + extraArgs.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "nvidia-x11" "nvidia-settings" ]; overlays = [ # Global overlays go here - ] ++ config.overlays or [ ]; + ] ++ extraArgs.overlays or [ ]; }; - } - (removeAttrs config [ "modules" "overlays" ]) + }) + (builtins.removeAttrs extraArgs [ + "modules" + "overlays" + "specialArgs" + ]) ); - stableNixosConfig = nixosConfig nixpkgs; - unstableNixosConfig = nixosConfig nixpkgs-unstable; + stableNixosConfig = name: extraArgs: + nixosConfig nixpkgs name ./hosts/${name}/configuration.nix extraArgs; in { bicep = stableNixosConfig "bicep" { modules = [