From 4009f60d0ba7efec0200b1d5f7311693c008c172 Mon Sep 17 00:00:00 2001 From: Robert Kovacsics Date: Thu, 13 Oct 2022 17:01:12 +0100 Subject: [PATCH] nixos/virtualbox-image: Allow running extra commands after OVA creation This is useful as virtual machines can often be large files so not having duplicates/work files in /nix/store can save a lot of space. --- .../virtualisation/virtualbox-image.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix index 2ea23d958cf7..407d690e32e5 100644 --- a/nixos/modules/virtualisation/virtualbox-image.nix +++ b/nixos/modules/virtualisation/virtualbox-image.nix @@ -107,6 +107,23 @@ in { }; }); }; + postExportCommands = mkOption { + type = types.lines; + default = ""; + example = '' + ${pkgs.cot}/bin/cot edit-hardware "$fn" \ + -v vmx-14 \ + --nics 2 \ + --nic-types VMXNET3 \ + --nic-names 'Nic name' \ + --nic-networks 'Nic match' \ + --network-descriptions 'Nic description' \ + --scsi-subtypes VirtualSCSI + ''; + description = lib.mdDoc '' + Extra commands to run after exporting the OVA to `$fn`. + ''; + }; }; }; @@ -179,6 +196,7 @@ in { mkdir -p $out fn="$out/${cfg.vmFileName}" VBoxManage export "$vmName" --output "$fn" --options manifest ${escapeShellArgs cfg.exportParams} + ${cfg.postExportCommands} rm -v $diskImage