Vagrant.configure(2) do |config|
    config.vm.box = "bento/centos-7.3"

    config.vm.provider :virtualbox do |vb|
        vb.name = "pgaudit-centos7-test"
    end

    # Provision the VM
    config.vm.provision "shell", inline: <<-SHELL
        # Setup environment
        echo 'export PG_VERSION=11' >> /etc/bashrc
        echo 'export PG_VERSION_NODOT=11' >> /etc/bashrc
        echo 'export PG_PACKAGE=pgdg-centos${PG_VERSION_NODOT?}-${PG_VERSION?}-2.noarch.rpm' >> /etc/bashrc
        echo 'export PG_TESTING=testing/' >> /etc/bashrc
        echo 'export PATH=$PATH:/usr/pgsql-${PG_VERSION?}/bin' >> /etc/bashrc
        source /etc/bashrc

        # Install PostgreSQL
        rpm -ivh http://yum.postgresql.org/${PG_TESTING?}${PG_VERSION?}/redhat/rhel-6-x86_64/${PG_PACKAGE?}
        yum install -y postgresql${PG_VERSION_NODOT?}-server

        # Compile & install pgaudit
        yum install -y centos-release-scl-rh epel-release
        yum install -y postgresql${PG_VERSION_NODOT?}-devel gcc openssl-devel llvm-toolset-7-clang llvm5.0
        make -C /pgaudit install USE_PGXS=1

        # Create PostgreSQL cluster
        sudo -u postgres /usr/pgsql-${PG_VERSION?}/bin/initdb -A trust -k /var/lib/pgsql/${PG_VERSION?}/data
        echo "shared_preload_libraries = 'pgaudit'" >> /var/lib/pgsql/${PG_VERSION?}/data/postgresql.conf
        systemctl start postgresql-${PG_VERSION?}
        sudo -u postgres psql -Xc 'create user vagrant superuser' postgres

        # Test pgaudit
        sudo -u vagrant bash -cl 'make -C /pgaudit installcheck USE_PGXS=1'
    SHELL

  # Don't share the default vagrant folder
  config.vm.synced_folder ".", "/vagrant", disabled: true

  # Mount project path for testing
  config.vm.synced_folder "..", "/pgaudit"
end
