#!/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 # this is the easiest way to make sure it doesn't just fail because no polycat-* exists touch polycat-tmp if $(ls $repo_dir/polycat-* | grep -q "$version"); then rm 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 rm $(ls polycat-*.rpm | sort --version-sort | sed '$d') # update repo createrepo_c . echo "package is at $repo_dir/$(ls polycat-*.rpm)"