#!/bin/sh set -o errexit set -o nounset if [ "$#" != '1' ] then cat 1>&2 < Downloading: ${URL}" 1>&2 curl -L -O "${URL}" ARCHIVE="$(find . -mindepth 1 -maxdepth 1 -type f -name '*.tar.gz' -print -quit)" echo "--> Extracting: $(basename "${ARCHIVE}")" 1>&2 tar -xzf "${ARCHIVE}" echo '--> Removing tests due to licensing issues' 1>&2 TARDIR="$(basename "${ARCHIVE}" '.tar.gz')" MTIME="$(stat -c '%Y' "${TARDIR}")" rm -rvf "${TARDIR}/tests/" # Restore the original mtime even though we modified the base directory by # removing the tests. touch -d @"${MTIME}" "${TARDIR}" FILTERED="$(basename "${ARCHIVE}" .tar.gz)-filtered.tar.zst" echo "--> Re-archiving: ${FILTERED}" 1>&2 # https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html TZ=UTC LC_ALL=C tar \ --create --verbose \ --sort=name \ --format=posix \ --numeric-owner --owner=0 --group=0 \ --mode=go+u,go-w \ --pax-option='delete=atime,delete=ctime' \ "${TARDIR}/" | zstdmt --ultra -22 > "${FILTERED}" mv -v "${FILTERED}" "${OUTDIR}" echo 'Done.' 1>&2