This is a quickie script which streamlines my RPM building and submission to a single command. Note that this is entirely dependent on our shiny new Package Forge system, which feeds RPMs to multiple platforms for building and eventual submission into our RPM buckets.
All it does is chain up “rpmbuild -bs [spec]; pkgforge submit [srpm]” but it’s a nice timesaver nonetheless. Side-benefits include the automatic generation of a readable ID and provision of a tracking link for pkgforge so that you can anxiously refresh the page to watch the build progress (or you could just wait for the report email…).
So, here is is; my very simple and stupid RPM automation. Suggested name: ‘rpmbus’.
#!/bin/bash if [[ -z $2 ]]; then echo "RPMbus: build -> submit assist" echo "Usage: `basename $0` [pkgforge args]" exit 1 fi bucket=$1; shift spec=$1; shift args=$* output=`rpmbuild -bs ${spec} | tail -n 1` pkg=`echo ${output} | sed -e 's_^Wrote: __'` if [[ ! -e ${pkg} ]]; then echo "Package wasn't built: ${output}" exit 1 fi id=`basename ${spec} | sed -e 's_\.spec__' -e 's_\.__g'`-`date +"%s"` echo -e "Found source package:\n ${pkg}" echo " Extra args: ${args:-none}" read -p "Submit to '${bucket}'?" foo if [[ ${foo} != 'y' ]]; then echo "Cancelled" exit 1 fi echo "Submitting to ${bucket}..." pkgforge submit --id ${id} -B ${bucket} ${args} ${pkg} && \ echo " https://pkgforge.inf.ed.ac.uk/job/view?id=${id}"
Caveats: well, they’re numerous and they’re pretty apparent. But it took five minutes to write and it WFM :)
The pkgforge submit command really ought to display the full URL for the job-view rather than just the top-level website address.