# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # Use Windows 10 as a base box.
  config.vm.box = "senglin/win-10-enterprise-vs2015community"
  config.vm.box_version = "1.0.0"

  # Install dependencies needed for yubikey-manager development.
  config.vm.provision "shell", path: "provision.bat"

  # Sync repository to /vagrant
  config.vm.synced_folder '../..', '/vagrant'

  config.vm.communicator = "winrm"
  #config.winrm.username = "IEUser"
  #config.winrm.password = "Passw0rd!"
  #config.vm.boot_timeout = 30

  # VirtualBox configuration
  config.vm.provider "virtualbox" do |vb|
    vb.name = "yubikey-manager_build-windows"

    # Enable GUI
    vb.gui = true
    # Set memory
    vb.memory = 2048
    # Enable shared clipboard
    vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
    # Enable drag-n-drop
    vb.customize ["modifyvm", :id, "--draganddrop", "bidirectional"]
  end

  # This will connect the YubiKey to the VM when re-inserted.
  # This filter uses VirtualBox as provider.
  # Modify the paramters as needed depending on the device.

  FILTER_NAME="YubiKey"
  MANUFACTURER="Yubico"
  VENDOR_ID="0x1050"
  PRODUCT_ID="0x0407"
  PRODUCT="Yubikey 4 OTP+U2F+CCID"

  config.vm.provider "virtualbox" do |vb|
   vb.customize ['modifyvm', :id, '--usb', 'on']
   vb.customize ['usbfilter', 'add', '0',
     '--target', :id,
     '--name', FILTER_NAME,
     '--manufacturer', MANUFACTURER,
     '--vendorid', VENDOR_ID,
     '--productid', PRODUCT_ID,
     '--product', PRODUCT]
  end

end
