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

$script = <<SCRIPT
echo I am provisioning...
PG_VERSION=12
yum -y update
yum -y install epel-release yum-utils
rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum -y check-update
yum -y install "postgresql$PG_VERSION" "postgresql$PG_VERSION-server" "postgresql$PG_VERSION-libs" "postgresql$PG_VERSION-contrib"
"/usr/pgsql-$PG_VERSION/bin/postgresql-$PG_VERSION-setup" initdb
systemctl enable "postgresql-$PG_VERSION"
systemctl start "postgresql-$PG_VERSION"
PG_CONF="/var/lib/pgsql/$PG_VERSION/data/postgresql.conf"
PG_HBA="/var/lib/pgsql/$PG_VERSION/data/pg_hba.conf"
PG_DIR="/var/lib/pgsql/$PG_VERSION/data"
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" "$PG_CONF"
sed -i "s/ident/md5/g" "$PG_HBA"
echo "host all all all md5" >> "$PG_HBA"
echo "client_encoding = utf8" >> "$PG_CONF"
echo "max_replication_slots = 10" >> "$PG_CONF"
echo "wal_level = logical" >> "$PG_CONF"
cat << EOF | su - postgres -c psql
ALTER USER postgres WITH PASSWORD 'postgres';
EOF
systemctl restart "postgresql-$PG_VERSION"
yum groupinstall -y "GNOME Desktop"
systemctl set-default graphical.target
date > /etc/vagrant_provisioned_at
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.provision "shell", inline: $script
  config.vm.box = "centos/8"
  config.vm.box_url = "https://app.vagrantup.com/centos/boxes/8"
  config.vm.host_name = "omnidbuatcentos8"
  config.vm.provider :virtualbox do |vb|
    vb.name = "omnidb_uat_centos8"
    vb.gui = true
    vb.memory = 2048
    vb.cpus = 2
  end
end
