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

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.

VAGRANTFILE_API_VERSION = "2"
Vagrant.require_version ">=1.7.0"

$bootstrap_freebsd = <<SCRIPT
sed  -e 's/\#DEFAULT_ALWAYS_YES = false/DEFAULT_ALWAYS_YES = true/g' -e 's/\#ASSUME_ALWAYS_YES = false/ASSUME_ALWAYS_YES = true/g' /usr/local/etc/pkg.conf > /tmp/pkg.conf
mv -f /tmp/pkg.conf /usr/local/etc/pkg.conf
pkg install automake libtool wget py37 gmake lftp
SCRIPT

$configure_ovs = <<SCRIPT
cd /vagrant
./boot.sh
mkdir -p ~/build
cd ~/build
sudo /vagrant/configure --disable-libcapng --enable-silent-rules
SCRIPT

$build_ovs = <<SCRIPT
cd ~/build
gmake
SCRIPT

$test_userspace = <<SCRIPT
cd ~/build
gmake check
SCRIPT

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # Use NFS due to capability 'mount_virtualbox_shared_folder'
  # does not work on FreeBSD.
  config.vm.network :private_network, ip: "10.0.0.2"
  config.vm.synced_folder ".", "/vagrant", :nfs => true

  config.vm.define "freebsd-10.2" do |freebsd|
    freebsd.vm.box = "bento/freebsd-10.2" 
    freebsd.vm.provision "bootstrap", type: "shell", inline: $bootstrap_freebsd
    freebsd.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
    freebsd.vm.provision "build_ovs", type: "shell", inline: $build_ovs
    freebsd.vm.provision "test_userspace", type: "shell", inline: $test_userspace
  end
end
