a flake module to ease creating and managing multiple hosts in your nix flake.

refactor: make nix-darwin optional

Changed files
+11 -8
+1 -1
flake-module.nix
··· 137 137 138 138 nix-darwin = mkOption { 139 139 type = types.anything; 140 - default = inputs.darwin or inputs.nix-darwin or (throw "cannot find nix-darwin input"); 140 + default = inputs.darwin or inputs.nix-darwin or null; 141 141 example = literalExpression "inputs.nix-darwin"; 142 142 description = "The nix-darwin to be used for the host"; 143 143 };
+10 -7
lib.nix
··· 7 7 let 8 8 inherit (inputs) self; 9 9 10 - inherit (builtins) 11 - readDir 10 + inherit (builtins) readDir; 11 + inherit (lib) 12 12 elemAt 13 13 filter 14 14 pathExists 15 15 foldl' 16 - ; 17 - inherit (lib.lists) optionals singleton concatLists; 18 - inherit (lib.attrsets) 16 + optionals 17 + singleton 18 + concatLists 19 19 recursiveUpdate 20 20 foldAttrs 21 21 attrValues 22 22 mapAttrs 23 23 filterAttrs 24 + mkDefault 25 + evalModules 26 + mergeAttrs 27 + assertMsg 24 28 ; 25 - inherit (lib.modules) mkDefault evalModules; 26 - inherit (lib.trivial) mergeAttrs; 27 29 28 30 classToOS = class: if (class == "darwin") then "darwin" else "linux"; 29 31 classToND = class: if (class == "darwin") then "darwin" else "nixos"; ··· 218 220 if ((classToND class) == "nixos") then 219 221 { nixosConfigurations.${name} = eval; } 220 222 else 223 + assert assertMsg (nix-darwin != null) "nix-darwin must be set when class is darwin"; 221 224 { 222 225 darwinConfigurations.${name} = eval // { 223 226 system = eval.config.system.build.toplevel;