debian-mirror-gitlab/scripts/frontend/download_fixtures.sh
2023-07-09 08:55:56 +05:30

56 lines
1.5 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Downloads the most recent frontend fixtures for the current commit, going up the commit parent
# chain up to max-commits commits (defaults to 50 commits).
#
source scripts/packages/helpers.sh
print_help() {
echo "Usage: scripts/frontend/download_fixtures.sh [--branch <branch-name>] [--max-commits <number>]"
echo
echo "Looks for a frontend fixture package in the package registry for commits on a local branch."
echo
echo "If --branch isn't specified, the script will use the current branch as a commit reference."
echo "If --max-commits isn't specified, the default is 50 commits."
return
}
branch="HEAD"
max_commits_count=50
while [ $# -gt 0 ]; do
case "$1" in
--branch)
shift
branch="$1"
;;
--max-commits)
shift
max_commits_count="$1"
;;
*)
print_help
exit
;;
esac
shift
done
for commit_sha in $(git rev-list ${branch} --max-count="${max_commits_count}"); do
API_PACKAGES_BASE_URL=https://gitlab.com/api/v4/projects/278964/packages/generic
FIXTURES_PACKAGE="fixtures-${commit_sha}.tar.gz"
FIXTURES_PACKAGE_URL="${API_PACKAGES_BASE_URL}/fixtures/${commit_sha}/${FIXTURES_PACKAGE}"
echo "Looking for frontend fixtures for commit ${commit_sha}..."
if ! archive_doesnt_exist "${FIXTURES_PACKAGE_URL}" > /dev/null 2>&1; then
echo "We have found frontend fixtures at ${FIXTURES_PACKAGE_URL}!"
read_curl_package "${FIXTURES_PACKAGE_URL}" | extract_package
break
fi
done