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

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

  config.vm.box = "fedora/39-cloud-base"

  config.vm.network :forwarded_port, guest: 80, host: 8080, auto_correct: true
  config.vm.network :forwarded_port, guest: 9000, host: 9000, auto_correct: true
  config.vm.network :forwarded_port, guest: 5000, host: 5000, auto_correct: true

  config.vm.provider "virtualbox" do |v|
    v.name = "jabref-fedora"
    v.gui = true
    v.customize ["modifyvm", :id, "--memory", "4096", "--cpus", "2"]
  end

  config.vm.provision "shell", inline: "sudo dnf update -y"
  config.vm.provision "shell", inline: "sudo dnf install -y @kde-desktop-environment"

  # Following X11 packages are NOT required even the clipboard functionality seems to ask for (cf. https://github.com/JabRef/jabref/issues/11464)
  # config.vm.provision "shell", inline: "sudo dnf install -y kwin-x11 plasma-workspace-x11"

  # We need exactly the java version required by JabRef. Auto download does not work on Fedora.
  config.vm.provision "shell", inline: "sudo dnf install -y git java-21-openjdk-devel.x86_64"

  config.vm.provision "shell", inline: "sudo systemctl set-default graphical.target"

  config.vm.provision "shell", inline: "git clone --recurse-submodules https://github.com/JabRef/jabref.git", privileged: false
  config.vm.provision "shell", inline: "cd jabref && ./gradlew jar || true", privileged: false

  # config.vm.provision "shell", inline: "sudo systemctl enable sddm"
  config.vm.provision "shell", inline: "sudo reboot"

  config.ssh.forward_x11 = true
end
