{ pkgs, lib, config, ... }: let inherit (lib) types; inherit (config) virtualbox; virtualbox-init = pkgs.writeShellScriptBin "virtualbox-init" '' set -eu TMPDIR=/tmp \ time ${pkgs.nix}/bin/nix build \ -I nixpkgs=${toString pkgs.path} \ --out-link .cache/nixops/virtualbox \ --argstr system ${virtualbox.system} \ -f pkgs/installer/nixops-virtualbox ''; in { options.virtualbox = { enable = lib.mkEnableOption "VirtualBox image for NixOps"; system = lib.mkOption { type = types.str; example = "x86_64-linux"; default = pkgs.stdenv.hostPlatform.system; }; }; config = lib.mkIf virtualbox.enable { nix-shell.buildInputs = [ virtualbox-init ]; nix-shell.shellHook = '' ''; }; }