require 'yaml'

Vagrant.configure("2") do |config|

  defaults = {
    "gui" => false,
    "metrics" => true,
    "cdatweb" => false,
    "memory" => 4096,
    "cpus" => 2
  }

  # load user config
  if File.exists?("config.yml")
    uv = YAML.load_file("config.yml")
  end


  # merge user config into defults
  uv = defaults.merge(uv || {})

  config.vm.box = "box-cutter/ubuntu1504"
  if uv["gui"]
    config.vm.box = "box-cutter/ubuntu1404-desktop"
  end

  if uv["cdatweb"]
    (7000..7050).each do |n|
      config.vm.network "forwarded_port", guest: n, host: n
    end
  end

  config.vm.provider "virtualbox" do |v|
    v.memory = uv["memory"]
    v.cpus = uv["cpus"]
    if uv["gui"]
      v.gui = true
    end
  end
  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "ansible/provision.yml"
    ansible.verbose = "v"
    ansible.extra_vars = {
      gui: uv["gui"],
      uvcmetrics: uv["metrics"],
      cpus: uv["cpus"]
    }
  end
end
