# -*- coding: utf-8 -*-
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  if RbConfig::CONFIG["host_os"] =~ /darwin/
    config.vm.box = "takesako/alpine-virt-3.24-aarch64"
  else
    config.vm.box = "takesako/alpine-virt-3.24-x86_64"
  end
  config.vm.box_check_update = false
  config.vm.boot_timeout = 300
  config.ssh.insert_key = false
  config.vm.synced_folder "vagrant", "/vagrant"
  config.vm.provider :virtualbox do |virtualbox, override|
    virtualbox.gui = true
    virtualbox.customize ["modifyvm", :id, "--cableconnected1", "on"]
    virtualbox.customize ["modifyvm", :id, "--usbohci", "on"]
    virtualbox.customize ["modifyvm", :id, "--usbehci", "on"]
    virtualbox.customize ["modifyvm", :id, "--usbxhci", "on"]
    virtualbox.customize ["usbfilter", "add", "0", "--target", :id, "--vendorid", "16d0", "--productid", "0753", "--name", "MCS Digistump DigiSpark"]
    virtualbox.customize ["usbfilter", "add", "1", "--target", :id, "--vendorid", "04b4", "--productid", "8613", "--name", "EZ-USB FX2LP USB DevKit"]
  end
  config.vm.provider :vmware_desktop do |vmware, override|
    vmware.gui = true
    vmware.ssh_info_public = true
    vmware.whitelist_verified = true
    vmware.vmx["ethernet0.pcislotnumber"] = "160"
    vmware.vmx["usb.present"] = "TRUE"
    vmware.vmx["ehci.present"] = "TRUE"
    vmware.vmx["usb_xhci.present"] = "TRUE"
    vmware.vmx["usb.vbluetooth.startconnected"] = "TRUE"
    vmware.vmx["usb.autoConnect.device0"]  = "vid:16d0 pid:0753 autoclean:1" # MCS Digistump DigiSpark
    vmware.vmx["usb.autoConnect.device1"]  = "vid:04b4 pid:8613 autoclean:1" # EZ-USB FX2LP USB DevKit
  end
  config.vm.provision "shell", inline: <<-SHELL
    chown -R vagrant:vagrant /vagrant 2>/dev/null # vmware: Operation not permitted
    echo "https://www.10t.dev/alpine-iot/v3.24" >> /etc/apk/repositories
    wget -P /etc/apk/keys https://www.10t.dev/alpine-iot/keys/takesako@namazu.org-587ad2bb.rsa.pub
    apk update
    apk add --no-cache cycfx2prog sdcc-mcs51 make gcc musl-dev perl usbutils py3-hidapi micro
    chmod u+s /usr/bin/cycfx2prog
  SHELL
  Encoding.default_external = "utf-8"
end
