mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-22 06:53:01 +00:00
e577b966bd
Many of the tests depend on sample files fetched over HTTP and they
keep adding more. Since they support a caching mechanism, use it to
pre‐fetch all the used samples instead.
It might be nice to have a package for the full FATE suite, but it’s
over 1 GiB in size so I just did this for now.
Fixes: ca258d2d39
45 lines
981 B
Bash
Executable File
45 lines
981 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
if test "$#" != 1; then
|
|
printf >&2 'usage: update-test-samples.bash /path/to/PyAV/source\n'
|
|
exit 2
|
|
fi
|
|
|
|
pyav_source=$1
|
|
|
|
exec > "$(dirname "$(readlink -f "$0")")/test-samples.toml"
|
|
|
|
fetch() {
|
|
path=$1
|
|
url=$2
|
|
prefetch_json=$(nix store prefetch-file --json "${url}")
|
|
sri_hash=$(jq -r .hash <<< "${prefetch_json}")
|
|
printf '"%s" = { url = "%s", hash = "%s" }\n' "${path}" "${url}" "${sri_hash}"
|
|
}
|
|
|
|
fetch_all() {
|
|
function=$1
|
|
base_path=$2
|
|
base_url=$3
|
|
|
|
samples=$(
|
|
rg \
|
|
--only-matching \
|
|
--no-filename \
|
|
"\\b${function}\\([\"']([^\"']+)[\"']\\)" \
|
|
--replace '$1' \
|
|
"${pyav_source}"
|
|
)
|
|
unique_samples=$(sort -u <<< "${samples}")
|
|
|
|
while IFS= read -r sample; do
|
|
fetch "${base_path}/${sample}" "${base_url}/${sample}"
|
|
done <<< "${unique_samples}"
|
|
}
|
|
|
|
fetch_all fate_suite fate-suite "http://fate.ffmpeg.org/fate-suite"
|
|
fetch_all curated pyav-curated "https://pyav.org/datasets"
|