{ 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 = ''
  '';
  };
}