#!/bin/bash set -exo pipefail API_URL=https://api.github.com/repos/element-hq/element-web/releases JQ_EXPR='.[] | select( .prerelease==false and .draft==false and .target_commitish=="refs/heads/develop" ) | "\(.tag_name[1:]) \(.published_at) \(.assets[] | select(.name|test("element-.*.tar.gz$")).browser_download_url )"' ROOT=$(pwd) function fetch() { cd "${SRCDIR}" wget "${URL}" --output-document "element-web-${VERSION}.tar.gz" tar --strip-components 1 -xf "element-web-${VERSION}.tar.gz" rm -f "element-web-${VERSION}.tar.gz" } function prepare() { mkdir -p \ "${PKGDIR}/DEBIAN" \ "${PKGDIR}/usr/share/matrix-element-web" \ "${PKGDIR}/etc/matrix-element-web" \ "${PKGDIR}/etc/apache2/sites-available" cp -r "${SRCDIR}" "${PKGDIR}/usr/share/matrix-element-web/html" cp "${ROOT}/debian.control" "${PKGDIR}/DEBIAN/control" cp "${ROOT}/debian.conffiles" "${PKGDIR}/DEBIAN/conffiles" cp "${ROOT}/matrix-element-web.site.conf" "${PKGDIR}/etc/apache2/sites-available/matrix-element-web.site.conf" mv "${PKGDIR}/usr/share/matrix-element-web/html/config.sample.json" "${PKGDIR}/etc/matrix-element-web/config.json" ln -s "/etc/matrix-element-web/config.json" "${PKGDIR}/usr/share/matrix-element-web/html/config.json" sed -re "s/__VERSION__/${VERSION}/g" -i "${PKGDIR}/DEBIAN/control" sed -re "s/__MAINTAINER__/${MAINTAINER}/g" -i "${PKGDIR}/DEBIAN/control" # root:www-data chown 0:33 -R "${PKGDIR}/usr/share/matrix-element-web" "${PKGDIR}/etc/matrix-element-web" find "${PKGDIR}" -exec touch -m -d "${ISODATE}" {} \; } function package() { cd "${BUILDDIR}" dpkg-deb --build "${PKGDIR}" "${BUILDDIR}" } function build() { read VERSION ISODATE URL <<<$(curl "${API_URL}" | jq -r "${JQ_EXPR}" | head -1) export VERSION export ISODATE export URL export BUILDDIR=${ROOT}/build export SRCDIR=${ROOT}/build/srcdir export PKGDIR=${ROOT}/build/pkgdir mkdir -p ${SRCDIR} ${PKGDIR} fetch prepare package } build