tdnf/scripts/build-tdnf-rpms.in

50 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
## file: build-tdnf-rpms.sh
## brief: Build tdnf rpms using tdnf.spec
## author: Shreenidhi Shedi <sshedi@vmware.com>
if [ ${EUID} -ne 0 ]; then
echo "Script must be run as root..." 1>&2
exit 1
fi
arch="$(uname -m)"
project_name="@PROJECT_NAME@"
project_dir="@CMAKE_SOURCE_DIR@"
cd "${project_dir}"
project_version="@PROJECT_VERSION@"
rpm_build_path="${project_dir}/.rpms"
full_name="${project_name}-${project_version}"
cleanup()
{
rm -rf "${rpm_build_path}"
}
trap cleanup EXIT
build_tools=(git tar gzip file)
if ! rpm -q ${build_tools[@]} > /dev/null; then
echo "Installing required build tools..."
if grep -w ID /etc/os-release | grep -i photon > /dev/null; then
tdnf install -qy ${build_tools[@]}
elif grep -w ID /etc/os-release | grep -i fedora > /dev/null; then
dnf install -qy ${build_tools[@]}
fi
fi
echo "Building ${full_name} RPMs"
git archive --prefix="${full_name}"/ --format=tar.gz -o "${full_name}".tar.gz HEAD
rm -rf "${rpm_build_path}"
mkdir -p "${rpm_build_path}"/{SOURCES,BUILD,RPMS/"${arch}"}
mv -f "${full_name}".tar.gz "${rpm_build_path}"/SOURCES
rpmbuild --quiet --nodeps -D "_topdir ${rpm_build_path}" -D "with_check 0" -bb "${project_name}".spec
mkdir -p "${full_name}-rpms"
mv -f "${rpm_build_path}"/RPMS/"${arch}"/*.rpm "${full_name}-rpms"
echo -e "\n\n--- tdnf rpms are available at $(realpath "${full_name}-rpms") ---\n\n"