{ lib, config, ... }: { options.builders = let inherit (lib) mkOption; inherit (lib.types) listOf deferredModule submodule; in { nixosModules = mkOption { type = listOf deferredModule; default = [ ]; description = '' nixos modules to be used by all nixosConfigurations ''; }; darwinModules = mkOption { type = listOf deferredModule; default = [ ]; description = '' nix-darwin modules to be used by all darwinConfigurations ''; }; homeModules = mkOption { type = listOf deferredModule; default = [ ]; description = '' home-manager modules to be used by all homeConfigurations ''; }; configurations = mkOption { type = submodule { options = { nixos = mkOption { type = listOf (submodule { options = { hostname = mkOption { type = lib.types.str; example = "snowhawk"; description = '' nixos configuration hostname ''; }; system = mkOption { type = lib.types.str; default = "x86_64-linux"; example = "aarch64-linux"; description = '' nixos configuration architecture ''; }; }; }); }; darwin = mkOption { type = listOf (submodule { options = { hostname = mkOption { type = lib.types.str; example = "lynx"; description = '' nix-darwin configuration hostname ''; }; system = mkOption { type = lib.types.str; default = "aarch64-darwin"; example = "x86_64-darwin"; description = '' nix-darwin configuration architecture Note: default is aarch64-darwin not x86_64-darwin ''; }; }; }); }; home = mkOption { type = listOf (submodule { options = { user = mkOption { type = lib.types.str; example = "ravenshade"; description = '' home-manager configuration architecture ''; }; system = mkOption { type = lib.types.str; default = "x86_64-linux"; example = "aarch64-darwin"; description = '' home-manager configuration architecture ''; }; hostname = lib.types.nullOr (mkOption { type = lib.types.str; default = ""; example = "permafrost"; description = '' home-manager configuration hostname Note: one of `hostname` or `configHostname` must be defined ''; }); configHostname = lib.types.nullOr (mkOption { type = lib.types.str; default = ""; example = "permafrost"; description = '' home-manager configuration hostname Note: one of `hostname` or `configHostname` must be defined ''; }); }; }); }; }; }; }; }; config = { }; }