diff --git a/rpmbuild/build.sh b/rpmbuild/build.sh index 88c70d3..b3cfef4 100755 --- a/rpmbuild/build.sh +++ b/rpmbuild/build.sh @@ -1,26 +1,38 @@ -#!/bin/sh +#!/bin/bash set -Eeuo pipefail mkdir -p RPMS SRPMS BUILD BUILDROOT -tmp_dir=$(mktemp -d -t mock-XXXXXXXXXX) +tmp_dir="$(mktemp -d -t mock-XXXXXXXXXX)" trap "rm -rf $tmp_dir" EXIT -function build_pkg () { - spectool -g -R SPECS/$1.spec - rpmbuild -bs SPECS/$1.spec - mock --enable-network -r centos-8-x86_64 --resultdir=$tmp_dir SRPMS/$(ls -1ct SRPMS | head -n1) -} - -# TODO: rewrite this! +# List of available builders: ls -1 /etc/mock +builder="${BUILDER:-centos-8-x86_64}" +echo "Using builder image $builder..." -if [ $# -gt 0 ]; then +function build_pkgs () { + source_rpms=() for pkg; do - build_pkg $pkg + pkg="$(basename "$pkg")" + pkg="${pkg%.spec}" + echo "Processing $pkg..." + spectool -g -R SPECS/$pkg.spec + rpmbuild -bs SPECS/$pkg.spec + source_rpm="SRPMS/$(ls -1ct SRPMS | head -n1)" + echo "Successfully generated $source_rpm!" + source_rpms+=("$source_rpm") done - cp $tmp_dir/*.x86_64.rpm RPMS/x86_64/ + echo "Compiling ${source_rpms[@]}..." + #debug_opts="-nN" + debug_opts="" + mock --enable-network -r "$builder" --resultdir=$tmp_dir $debug_opts "${source_rpms[@]}" +} + +if [ $# -gt 0 ]; then + build_pkgs "$@" else - for spec in SPECS/*.spec; do - build_pkg $(basename $spec .spec) - done + build_pkgs SPECS/*.spec fi + +rm -f "$tmp_dir/*.src.rpm" "$tmp_dir/*.log" +mv $tmp_dir/*.rpm RPMS/x86_64/