# frozen_string_literal: true

servezone_root = ENV.fetch('SERVEZONE_ROOT', File.expand_path('..', __dir__))

Vagrant.configure('2') do |config|
  config.vm.box = ENV.fetch('SERVEZONE_VAGRANT_BOX', 'bento/ubuntu-24.04')
  config.vm.hostname = 'servezone-testing'

  config.vm.synced_folder '.', '/vagrant', disabled: true

  config.vm.synced_folder servezone_root, '/serve.zone',
    type: 'rsync',
    owner: 'vagrant',
    group: 'vagrant',
    rsync__auto: false,
    rsync__exclude: [
      '.git/',
      '.nogit/',
      '.vagrant/',
      'node_modules/',
      'containerarchive/',
      'remoteingress/',
      'siprouter/',
      '**/.git/',
      '**/.nogit/',
      '**/.vagrant/',
      '**/node_modules/',
      '**/.cache/',
      '**/.pnpm-store/',
      '**/dist/',
      '**/dist_*/',
      '**/target/',
    ]

  config.vm.provider 'virtualbox' do |vb|
    vb.name = 'servezone-testing'
    vb.cpus = ENV.fetch('SERVEZONE_VAGRANT_CPUS', '4').to_i
    vb.memory = ENV.fetch('SERVEZONE_VAGRANT_MEMORY', '8192').to_i
  end

  config.vm.provider 'libvirt' do |lv|
    lv.cpus = ENV.fetch('SERVEZONE_VAGRANT_CPUS', '4').to_i
    lv.memory = ENV.fetch('SERVEZONE_VAGRANT_MEMORY', '8192').to_i
  end

  config.vm.provision 'shell', path: 'scripts/provision-vm.sh'
end
