#!/bin/bash

. /dbld/functions.sh

RPMBUILD=${HOME}/rpmbuild
RPMBUILD_SOURCES=${RPMBUILD}/SOURCES

function setup_dirs() {
	mkdir -p $RPMBUILD_SOURCES
	rm -rf /build/${IMAGE_PLATFORM} && mkdir -p /build/${IMAGE_PLATFORM}
}

function copy_rpm_packaging_src_files_to_build_folder() {
    # CzP's spec file expect these files in the pwd
    # where the build was initiated
    rm -rf syslog-ng-${VERSION} && tar xvf syslog-ng-${VERSION}.tar.gz
    find /build/syslog-ng-${VERSION}/packaging/rhel/ -type f | grep --invert-match '\.spec$' | xargs -i cp {} /build/
}

function patch_source()
{
    # fedora-rawhide latest has a new gcc 15, the old bison headers are not compatible with it
    if [[ "${IMAGE_PLATFORM}" == "fedora-rawhide" ]]; then
        echo "Pathing ${IMAGE_PLATFORM} sources..."
        pushd /build/syslog-ng-${VERSION}
        # Consider adding a reusable, proper patching mechanism in the future, e.g.
        #patch -p1 < /build/syslog-ng-${VERSION}/packaging/rhel/syslog-ng-3.35.1-bison-3.8.patch
        sudo sed -i '/#define BSON_NORETURN/{N;/#endif/a\
#undef BSON_NORETURN\
#define BSON_NORETURN
}' /usr/include/libbson-1.0/bson/bson-macros.h
        popd
    fi
}

function prepare_source() {
    copy_rpm_packaging_src_files_to_build_folder
    patch_source
    cp syslog-ng-${VERSION}.tar.gz $RPMBUILD_SOURCES
}

function capture_rpms() {
    mv $RPMBUILD/RPMS/*/*${VERSION}*.rpm /build/${IMAGE_PLATFORM}
    mv $RPMBUILD/SRPMS/*${VERSION}*.rpm /build/${IMAGE_PLATFORM}
    echo "Your rpms are in /build/${IMAGE_PLATFORM}, also available on the host in \$(top_srcdir)/dbld/build/${IMAGE_PLATFORM}"
    capture_artifacts /build/${IMAGE_PLATFORM}/*.rpm

}

cd /build

setup_dirs
prepare_source
rpm_run_build_command rpmbuild --define '_dbld 1' -ta syslog-ng-${VERSION}.tar.gz
capture_rpms
