mirror of
https://github.com/nix-community/nixos-generators.git
synced 2024-08-16 23:51:00 +03:00
Many formats generate an image only large enough for the generated NixOS config. This quickly runs out of space for NixOS servers that are updated over time rather than being redeployed with fresh images. Signed-off-by: James Alseth <james@jalseth.me>
33 lines
797 B
Nix
33 lines
797 B
Nix
{
|
|
nixpkgs ? <nixpkgs>,
|
|
configuration ? <nixos-config>,
|
|
system ? builtins.currentSystem,
|
|
diskSize ? "auto",
|
|
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;
|
|
specialArgs = {
|
|
diskSize = diskSize;
|
|
};
|
|
modules = [
|
|
module
|
|
formatConfig
|
|
configuration
|
|
];
|
|
}
|