File openSUSE-appstream-process of Package appstream-glib
#!/bin/bash
SRC=$1
DEST=$2
URL=https://static.opensuse.org/appstream/tumbleweed
# Do not produce the html files - the biggest tasks are done
# Users interested in them can always produce them locally out of the appdata.xml.gz file
HTMLOUT=no
HASHED_NAMES=no
TMPDIR=$(mktemp -d)
/usr/bin/appstream-builder \
--temp-dir=${TMPDIR}/apb \
--cache-dir=${TMPDIR}/apb/cache \
--origin=appdata \
--basename=appdata \
--packages-dir=${SRC} \
--output-dir=${DEST} 2>&1 > $TMPDIR/as-builder.log
RET=$?
if [ $RET -ne 0 ]; then
# The appstream-builder failed, exit with an error code, so prod builder knows about it
cat $TMPDIR/as-builder.log
exit $RET
fi
# clean up TMPDIR again
rm -rf ${TMPDIR}
# Change screenshot URLs to our own infrastructure; disabled, as infra not ready
# appstream-util mirror-screenshots \
# ${DEST}/appdata.xml.gz \
# ${URL} \
# /usr/share/app-screenshots \
# /tmp/apb-screenshots
if [ "$HTMLOUT" = "yes" ]; then
/usr/bin/appstream-util \
status-html \
${DEST}/appdata.xml.gz \
${DEST}/appdata.html
# compress the HTML file (boo#942985)
xz -9 ${DEST}/appdata.html
/usr/bin/appstream-util \
status-html \
${DEST}/appdata-failed.xml.gz \
${DEST}/appdata-failed.html
# compress the HTML file (boo#942985)
xz -9 ${DEST}/appdata-failed.html
fi
if [ "$HASHED_NAMES" = "yes" ]; then
# rename the appdata-icons.tar.gz tarball to something like
# appdata-icons-${hash}.tar.gz, allowing mirrorbrain to send users
# off to a mirror to catch the file, improving performance
read md5 fn_catchall <<<$(md5sum ${DEST}/appdata-icons.tar.gz)
mv ${DEST}/appdata-icons.tar.gz ${DEST}/appdata-icons-${md5}.tar.gz
# also rename the appdata.xml.gz file in the same style
read md5 fn_catchall <<<$(md5sum ${DEST}/appdata.xml.gz)
mv ${DEST}/appdata.xml.gz ${DEST}/appdata-${md5}.xml.gz
# And the same for the -screenshots tarball (containing auto-generated screenshots for fonts)
read md5 fn_catchall <<<$(md5sum ${DEST}/appdata-screenshots.tar)
mv ${DEST}/appdata-screenshots.tar ${DEST}/appdata-screenshots-${md5}.tar
fi