nixos-generators/nixos-generate.nix
2023-05-30 10:21:34 +02:00

29 lines
716 B
Nix

{
nixpkgs ? <nixpkgs>,
configuration ? <nixos-config>,
system ? builtins.currentSystem,
formatConfig,
flakeUri ? null,
flakeAttr ? null,
}: let
module = import ./format-module.nix;
# Will only get evaluated when used, so no worries
flake = builtins.getFlake flakeUri;
flakeSystem = flake.outputs.packages."${system}".nixosConfigurations."${flakeAttr}" or flake.outputs.nixosConfigurations."${flakeAttr}";
in
if flakeUri != null
then
flakeSystem.extendModules {
modules = [module formatConfig];
}
else
import "${toString nixpkgs}/nixos/lib/eval-config.nix" {
inherit system;
modules = [
module
formatConfig
configuration
];
}