Vagrant.configure(2) do |config|
  config.vm.box = "freebsd/FreeBSD-11.1-PRERELEASE"
  config.vm.synced_folder ENV['STACK_BUILD_DIR'], "/vagrant-build", type: "rsync", rsync__verbose: true, rsync__exclude: [".stack-work/", "_release/", ".cabal-sandbox/", "cabal.sandbox.config", "dist/", ".#*#", "*.vdi", "*.vmdk", "*.raw", ".DS_Store"], rsync__args: ["--verbose", "--archive", "--delete", "-z"]
  config.vm.synced_folder "../../..", "/vagrant", type: "rsync", rsync__verbose: true, rsync__exclude: [".stack-work/", "_release/", ".cabal-sandbox/", "cabal.sandbox.config", "dist/", ".#*#", "*.vdi", "*.vmdk", "*.raw", ".DS_Store"], rsync__args: ["--verbose", "--archive", "--delete", "-z"]
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "3072"
  end
  config.ssh.forward_agent = true
  config.ssh.shell = "/bin/sh"
  config.vm.provision "shell", inline: <<-SHELL
    set -xe
    pkg install -y devel/gmake perl5 lang/gcc misc/compat8x misc/compat9x converters/libiconv ca_root_nss awscli git gnupg1 unzip
    if ! which stack; then
      curl -sSL https://www.stackage.org/stack/freebsd-x86_64 \
        | tar xzvf - --strip-components=1 -C /usr/local/bin '*/stack'
      chmod a+x /usr/local/bin/stack
    fi
  SHELL
end
