#!/usr/bin/env bash
set -e

spdk_repo=$(mktemp -dt "spdk.XXXXXX")
spdk_tar=/spdk.tar.gz

cleanup() {

	rm -f "$HOME/rpmbuild/rpm/x86_64/"*.rpm
	rm -f "$spdk_tar"
	rm -rf "$spdk_repo"
}

trap 'cleanup' EXIT

if [[ ! -e $spdk_tar ]]; then
	printf 'Missing %s\n' "$spdk_tar" >&2
	exit 1
fi

tar -C "$spdk_repo" -xf "$spdk_tar"

# Required for building RPM
dnf install -y rpm-build

# Spice it a bit with supported sources
"$spdk_repo/scripts/pkgdep.sh" -d
"$spdk_repo/test/common/config/vm_setup.sh" --test-conf=fio

# HACK: In case we received a .tar with built SPDK we need to overwrite the
# configuration to update all the paths make would need to lookup - this is
# needed since we execute inside a different mount namespace so we won't be
# able to find any absolute paths that were used prior creating the .tar.
"$spdk_repo/configure" > /dev/null

# Deploy SPDK inside the container
DEPS="no" "$spdk_repo/rpmbuild/rpm.sh" \
	--with-shared \
	--with-virtio \
	--with-fio

mv "$HOME/rpmbuild/rpm/x86_64/"*.rpm /tmp
mv "/usr/src/fio/fio" /tmp
dnf clean all
