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

def gui_enabled?
  !ENV.fetch('GUI', '').empty?
end

Vagrant.configure("2") do |config|
  config.vm.box_check_update = false

  config.vm.define "ubuntu" do |instance|
    instance.vm.box = "generic/ubuntu1804"
    instance.vm.network "private_network", ip: "192.168.56.20"
  end

  config.vm.define "rocky" do |instance|
    instance.vm.hostname = "rocky"
    instance.vm.box = "rockylinux/8"
    instance.vm.network "private_network", ip: "192.168.56.21"
  end

  config.vm.define "centos8" do |instance|
    instance.vm.box = "centos/8"
    instance.vm.network "private_network", ip: "192.168.56.22"
  end

  config.vm.define "centos" do |instance|
    instance.vm.box = "geerlingguy/centos7"
    instance.vm.network "private_network", ip: "192.168.56.23"
  end

  config.vm.define "opensuse" do |instance|
    instance.vm.box = "opensuse/Leap-15.2.x86_64"
    instance.vm.network "private_network", ip: "192.168.56.24"
  end

  config.vm.define "almalinux8" do |instance|
    instance.vm.hostname = "almalinux8"
    instance.vm.box = "almalinux/8"
    instance.vm.network "private_network", ip: "192.168.56.25"
  end

  config.vm.define "almalinux9" do |instance|
    instance.vm.hostname = "almalinux9"
    instance.vm.box = "almalinux/9"
    instance.vm.network "private_network", ip: "192.168.56.26"
  end

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.gui = gui_enabled?
  end

  config.vm.synced_folder "../", "/vagrant_data"

  config.vm.provision "shell", inline: <<-SHELL
    cd /vagrant_data/vagrant
    sudo ./install.sh
  SHELL
end
