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

# plugins don't seem to be auto-loaded from the bundle
require 'vagrant-puppet-install'
require 'vagrant-vbguest'

Vagrant.configure('2') do |config|
  config.vm.define :no_config_set do |no_config_set|
    no_config_set.vm.box = 'ubuntu/trusty64'
    no_config_set.vm.provision 'shell', inline: "echo 'Should still work with no puppet plugin enabled'"
  end

  config.vm.define :trusty_latest do |trusty_latest|
    trusty_latest.puppet_install.puppet_version = :latest

    trusty_latest.vm.box = 'ubuntu/trusty64'

    trusty_latest.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = 'vagrant'
    end

    trusty_latest.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :trusty_361 do |trusty_361|
    trusty_361.puppet_install.puppet_version = '3.6.1'

    trusty_361.vm.box = 'ubuntu/trusty64'

    trusty_361.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = 'vagrant'
    end

    trusty_361.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :fedora_23 do |fedora_23|
    fedora_23.vm.box = "fedora/23-cloud-base"
    fedora_23.puppet_install.puppet_version = :latest

    fedora_23.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = "vagrant"
    end

    fedora_23.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :fedora_384 do |fedora_384|
    fedora_384.vm.box = "fedora/23-cloud-base"
    fedora_384.puppet_install.puppet_version = '3.8.4'

    fedora_384.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = "vagrant"
    end

    fedora_384.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :debian_jessie_372 do |debian_jessie_372|
    debian_jessie_372.vm.box = "debian/jessie64"
    debian_jessie_372.puppet_install.puppet_version = '3.7.2'

    debian_jessie_372.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = "vagrant"
    end

    debian_jessie_372.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :validate_version_false do |validate_version_false|
    validate_version_false.puppet_install.puppet_version = '9.9.9'
    validate_version_false.puppet_install.validate_version = false

    validate_version_false.puppet_install.install_url = File.expand_path('../../support/puppet_install_script/shell_install.sh')
    validate_version_false.vm.box = "puppetlabs/centos-6.6-64-nocm"

    validate_version_false.vm.provision :puppet do |puppet|
      puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
      puppet.manifest_file  = "base.pp"
    end

    validate_version_false.vm.provision "shell", inline: "puppet --version"
  end

  config.vm.define :trusty_ubuntu_box do |trusty_ubuntu_box|
    trusty_ubuntu_box.puppet_install.puppet_version = :latest
    trusty_ubuntu_box.puppet_install.install_url = 'https://gist.githubusercontent.com/petems/6723c2eedb9d32d7ad97/raw/990ff448f6430aa015e208668a3cecb3f1db0d4b/purge_old_install_new.sh'

    trusty_ubuntu_box.vm.box = 'ubuntu/trusty64'

    trusty_ubuntu_box.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = 'vagrant'
    end

    trusty_ubuntu_box.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :ubuntu do |ubuntu|
    ubuntu.puppet_install.puppet_version = '3.6.1'

    ubuntu.vm.box = 'puppetlabs/ubuntu-12.04-64-nocm'

    ubuntu.vm.provision :puppet do |puppet|
      puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
      puppet.manifest_file  = 'base.pp'
    end

    ubuntu.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :gh6 do |gh6|
    gh6.puppet_install.puppet_version = '2.7.23'

    gh6.vm.box = 'puppetlabs/ubuntu-12.04-64-nocm'
    gh6.vm.provision 'shell', inline: 'puppet --version'

    gh6.vm.provision :puppet do |puppet|
      puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
      puppet.manifest_file  = 'base.pp'
    end

    gh6.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :centos do |centos|
    centos.puppet_install.puppet_version = :latest
    centos.vm.box = 'puppetlabs/centos-6.6-64-nocm'

    centos.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = "vagrant"
    end

    centos.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :new_install_url do |new_install_url|
    new_install_url.puppet_install.puppet_version = :latest
    new_install_url.puppet_install.install_url = 'https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/centos_6_x.sh'
    new_install_url.vm.box = 'puppetlabs/centos-6.6-64-nocm'

    new_install_url.vm.provision :puppet do |puppet|
      puppet.environment_path = File.expand_path('../../../support/environments', __FILE__)
      puppet.environment = "vagrant"
    end

    new_install_url.vm.provision 'shell', inline: 'puppet --version'
  end

  config.vm.define :new_install_path do |new_install_path|
    new_install_path.puppet_install.puppet_version = :latest
    new_install_path.puppet_install.install_url = File.expand_path('../../support/puppet_install_script/shell_install.sh')
    new_install_path.vm.box = 'puppetlabs/centos-6.6-64-nocm'

    new_install_path.vm.provision :puppet do |puppet|
      puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
      puppet.manifest_file  = 'base.pp'
    end

    new_install_path.vm.provision 'shell', inline: 'puppet --version'
  end
end