mirror of https://github.com/vmware/tdnf.git
50 lines
1.4 KiB
Bash
Executable File
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"
|