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

Vagrant.configure("2") do |config|
  if RbConfig::CONFIG["host_cpu"] =~ /arm64|aarch64/
    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"]
    virtualbox.customize ["usbfilter", "add", "2", "--target", :id, "--vendorid", "f055", "--productid", "0002", "--name", "SecCamp EZ-Keyboard"]
  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
    vmware.vmx["usb.autoConnect.device2"]  = "vid:f055 pid:0002 autoclean:1" # SecCamp EZ-Keyboard
  end
  config.vm.provision "shell", inline: <<-SHELL
    chown -R vagrant:vagrant /vagrant 2>/dev/null # vmware: Operation not permitted
    setup-keymap jp jp # setup-keymap us us
    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 avr-libc binutils-avr gcc-avr make usbutils micronucleus
    # wget -P /usr/bin https://github.com/ArminJo/micronucleus/raw/master/commandline/builds/`uname -m`-linux-gnu/micronucleus
    sudo chmod 755 /usr/bin/micronucleus
    chmod u+s /usr/bin/micronucleus /usr/bin/lsusb
  SHELL
  Encoding.default_external = "utf-8"
end
