#!/bin/sh -eux

SRPM="$1"

# always remove older versions of these RPMs if they exist
# to ensure newly built packages have been installed
yum -y remove lorax lorax-composer composer-cli

LATEST_REPO="/etc/yum.repos.d/rhel7-rel-eng-latest.repo"
if [ ! -f "$LATEST_REPO" ]; then
    cat > $LATEST_REPO << __EOF__
[rhel7-rel-eng-latest]
gpgcheck=0
enabled=1
skip_if_unavailable=0
name=rhel7-rel-eng-latest
baseurl=http://download-node-02.eng.bos.redhat.com/rhel-7/rel-eng/latest-RHEL-7/compose/Server/\$basearch/os/
__EOF__
fi

if ! rpm -q beakerlib; then
    if [ $(. /etc/os-release && echo $ID) = "rhel" ]; then
        (cd /etc/yum.repos.d; curl -O -L http://download.devel.redhat.com/beakerrepos/beaker-client-RedHatEnterpriseLinux.repo)
        # disable sslverify b/c yum will fail to sync metadata otherwise
        sed -i "s/\(gpgcheck=0\)/\1\nsslverify=0/" /etc/yum.repos.d/beaker-client-RedHatEnterpriseLinux.repo
        # do not remove the repo file. We now have tests which use beakerlib
        # inside their blueprints so this needs to stay on the VM
    fi

    yum install -y beakerlib
fi

EPEL_REPO="/etc/yum.repos.d/epel7.repo"
if [ ! -f "$EPEL_REPO" ]; then
    cat > $EPEL_REPO << __EOF__
[epel7]
name=epel7
failovermethod=priority
enabled=1
skip_if_unavailable=0
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=\$basearch
gpgcheck=0
__EOF__
fi

# EPEL packages used in tests
if ! rpm -q python2-pip; then
    yum -y install python2-pip
fi

if ! rpm -q python-virtualenv; then
    yum -y install python-virtualenv
fi

# don't build images with EPEL enabled
rm -f $EPEL_REPO

if rpm -q python2-cryptography; then
    yum remove -y python2-cryptography
fi

if rpm -q pyparsing; then
    yum remove -y pyparsing
fi

if ! rpm -q git; then
    yum install -y git
fi

# Grow root partition to make room for images. This only works on Fedora right now.
parted --script /dev/vda resizepart 2 100%
partprobe
pvs --noheadings -opv_name | xargs pvresize
rootlv=$(findmnt --noheadings -oSOURCE /)
lvresize $rootlv -l+100%FREE -r

rm -rf build-results
su builder -c "/usr/bin/mock --no-clean --resultdir build-results --rebuild $SRPM"

packages=$(find build-results -name '*.rpm' -not -name '*.src.rpm')
yum install -y $packages

systemctl enable lorax-composer.socket

if [ -f /usr/bin/docker ]; then
    yum remove -y $(rpm -qf /usr/bin/docker)
fi

if ! rpm -q podman-docker; then
    yum install -y podman-docker
fi