Quick Bash script for downloading all Package Catalog Protocol metadata - racket/racket GitHub Wiki

Quick Bash script for downloading all Package Catalog Protocol metadata. https://docs.racket-lang.org/pkg/catalog-protocol.html

Use sparingly. Sends N+1 GET requests, where N is the number of packages returned by /pkgs.

#! /usr/bin/env bash

set -xeo pipefail
directory="$1"
catalog="${2:-https://pkgs.racket-lang.org}"
[ ! -d "$directory" ]
set +x -u; : $1

mkdir -p "$directory"
cd "$directory"

curl --silent "$catalog/pkgs" | \
     racket --eval '(display-lines (read))' | \
     xargs --max-procs=$(nproc) --replace curl --silent --output '{}' "$catalog/pkg/{}"