#!/usr/bin/env bash set -euo pipefail built_dir=${COMPILED_DIR:-/compiled}/polycat version=$(cat $built_dir/version) repo_dir=${REPO_DIR:-/repo} # skip if already up-to-date # TODO: use the repo instead and check the version with dnf # yeah this is bad; see also the polycat-aaaaaa thing below touch $repo_dir/polycat-tmp if $(ls $repo_dir/polycat-* | grep -q "$version"); then rm $repo_dir/polycat-tmp echo "package is already up to date, exiting" exit fi rm polycat_tmp # prep dnf install fedora-packager rpmdevtools createrepo_c -y rpmdev-setuptree # update spec file sed -i "s/Version:.*/Version: $version/g" polycat.spec sed -i "s/DATE_HERE/$(date '+%a %b %d %Y')/g" polycat.spec sed -i "s/CHANGELOG_MESSAGE_HERE/Update to $version/g" polycat.spec sed -i "s/RPM_PACKAGER_NAME/$RPM_PACKAGER_NAME/g" polycat.spec sed -i "s/RPM_PACKAGER_EMAIL/$RPM_PACKAGER_EMAIL/g" polycat.spec # build package and move to the repo rpmbuild -bb polycat.spec mv ~/rpmbuild/RPMS/x86_64/polycat-$version-* $repo_dir/ # remove old versions cd $repo_dir # this is the easiest way to make sure it doesn't just fail because no polycat-* exists # (which only happens on first run) touch polycat-aaaaaa.rpm rm $(ls polycat-*.rpm | sort --version-sort | sed '$d') rm polycat-aaaaaa.rpm # update repo createrepo_c . echo "package is at $repo_dir/$(ls $repo_dir/polycat-*.rpm)"