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

Vagrant.configure('2') do |config|
  config.vm.hostname = 'mentat-devel.local'
  config.vm.box = 'debian/contrib-buster64'

  config.vm.provider 'virtualbox' do |v|
    v.memory = 2048
    v.cpus = 2
  end

  # Host port 5000: Flask development server
  config.vm.network 'forwarded_port', guest: 5000, host: 5000
  # Host port 4443: Apache web server
  config.vm.network 'forwarded_port', guest: 443, host: 4443
  # Host port 1080: Sendria mailtrap service for development
  config.vm.network 'forwarded_port', guest: 1080, host: 1080

  # Create a private network, which allows host-only access to the machine
  # using a specific IP.
  # config.vm.network "private_network", ip: "192.168.33.10"

  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  # config.vm.network "public_network"

  config.vm.provision 'bootstrap_system', type: 'shell', inline: <<-SHELL
    bash /vagrant/vagrantenv/provisioning/p01_system.sh
  SHELL

  config.vm.provision 'bootstrap_mentat', type: 'shell', inline: <<-SHELL
    bash /vagrant/vagrantenv/provisioning/p02_mentat.sh
  SHELL

  config.vm.provision 'bootstrap_warden', type: 'shell', inline: <<-SHELL
    bash /vagrant/vagrantenv/provisioning/p03_warden.sh
  SHELL

  # Automatically connect as 'mentat' user with ssh command.
  # VAGRANT_COMMAND = ARGV[0]
  # config.ssh.username = 'mentat' if VAGRANT_COMMAND == 'ssh'
  config.ssh.extra_args = ['-t', 'cd /vagrant; bash --login']
end