Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.5 kB · 107 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108{ config, pkgs, lib, ...}:let boolToStr = value: if value then "on" else "off"; cfg = config.vmware;
subformats = [ "monolithicSparse" "monolithicFlat" "twoGbMaxExtentSparse" "twoGbMaxExtentFlat" "streamOptimized" ];
in{ imports = [ ../image/file-options.nix (lib.mkRenamedOptionModuleWith { sinceRelease = 2505; from = [ "virtualisation" "vmware" "vmFileName" ]; to = [ "image" "fileName" ]; })
];
options = { vmware = { baseImageSize = lib.mkOption { type = with lib.types; either (enum [ "auto" ]) int; default = "auto"; example = 2048; description = '' The size of the VMWare base image in MiB. ''; }; vmDerivationName = lib.mkOption { type = lib.types.str; default = "nixos-vmware-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}"; description = '' The name of the derivation for the VMWare appliance. ''; }; vmSubformat = lib.mkOption { type = lib.types.enum subformats; default = "monolithicSparse"; description = "Specifies which VMDK subformat to use."; }; vmCompat6 = lib.mkOption { type = lib.types.bool; default = false; example = true; description = "Create a VMDK version 6 image (instead of version 4)."; }; }; };
config = { system.nixos.tags = [ "vmware" ]; image.extension = "vmdk"; system.build.image = config.system.build.vmwareImage; system.build.vmwareImage = import ../../lib/make-disk-image.nix { name = cfg.vmDerivationName; baseName = config.image.baseName; postVM = '' ${pkgs.vmTools.qemu}/bin/qemu-img convert -f raw -o compat6=${boolToStr cfg.vmCompat6},subformat=${cfg.vmSubformat} -O vmdk $diskImage $out/${config.image.fileName} rm $diskImage ''; format = "raw"; diskSize = cfg.baseImageSize; partitionTableType = "efi"; inherit config lib pkgs; };
fileSystems."/" = { device = "/dev/disk/by-label/nixos"; autoResize = true; fsType = "ext4"; };
fileSystems."/boot" = { device = "/dev/disk/by-label/ESP"; fsType = "vfat"; };
boot.growPartition = true;
boot.loader.grub = { device = "nodev"; efiSupport = true; efiInstallAsRemovable = true; };
virtualisation.vmware.guest.enable = true; };}