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