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

# Find more details about vagrant boxes creation here: https://github.com/asmagin/sitecore-packer

sitecore_prefix = 'sc9'                        # sc9 used by default for boxes with Sitecore 9.x.x
vagrant_box_name = '<%= vagrantBoxNameX %>'    # box name added to vagrant for example 'w16s-sc911'
project_name = '<%= solutionX %>'              # your project name
vm_hostname = "#{ENV['COMPUTERNAME']}T#{project_name}"
private_network_ip = '192.168.50.4'
vb_name = "#{project_name}"

vagrant_root = File.dirname(__FILE__)           # folder with current Vagrantfile
host_serialization_root = "#{vagrant_root}/src" # path on host opprating system, which is hosting Vagrant and VirtualBox
guest_serialization_root = "/inetpub/wwwroot/#{sitecore_prefix}.local/App_Data/unicorn-#{project_name}" # path inside VM that you creating

Vagrant.configure('2') do |config|
  config.vm.box = "#{vagrant_box_name}"
  config.vm.hostname = "#{vm_hostname}"
  config.vm.synced_folder "#{host_serialization_root}", "#{guest_serialization_root}"

  # Create a private network, which allows host-only access to the machine using a specific IP.
  config.vm.network 'private_network', ip: "#{private_network_ip}", auto_config: true
  
  # Create a forwarded port mapping which allows access to a specific port
  config.vm.network :forwarded_port, guest: 80,   host: 80,   auto_correct: true # http
  config.vm.network :forwarded_port, guest: 443,  host: 443,  auto_correct: true # https
  config.vm.network :forwarded_port, guest: 1433, host: 1433, auto_correct: true # sql
  config.vm.network :forwarded_port, guest: 8983, host: 8983, auto_correct: true # solr
  config.vm.network :forwarded_port, guest: 8172, host: 8172, auto_correct: true # webdeploy
  config.vm.network :forwarded_port, guest: 4020, host: 4020, auto_correct: true # vs 2015 remote debugger
  config.vm.network :forwarded_port, guest: 4022, host: 4022, auto_correct: true # vs 2017 remote debugger
  config.vm.network :forwarded_port, guest: 4024, host: 4024, auto_correct: true # vs 2019 remote debugger
  
  config.hostmanager.enabled = true
  config.hostmanager.manage_host = true
  config.hostmanager.ignore_private_ip = false
  config.hostmanager.aliases = %W(<%= hostNamesX.join(" ") %>)

  config.vm.provider 'virtualbox' do |vb|
    vb.name = "#{vb_name}"
    vb.gui = false
    vb.cpus = 4
    vb.memory = '8192'
    
    vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
  end
  
  config.vm.box_check_update = false
end
