freetype2/tests/scripts/download-test-fonts.sh

67 lines
1.7 KiB
Bash
Raw Normal View History

#!/usr/bin/bash
# Download test fonts used by the FreeType regression test programs.
# These will be copied to $FREETYPE/tests/data/
# Each font file contains an 8-hexchar prefix corresponding to its md5sum
set -e
export LANG=C
export LC_ALL=C
PROGDIR=$(dirname "$0")
PROGNAME=$(basename "$0")
# Download a file from a given URL
#
# $1: URL
# $2: Destination directory
# $3: If not empty, destination file name. Default is to take
# the URL's basename.
#
download_file () {
local URL=$1
local DST_DIR=$2
local DST_FILE=$3
if [[ -z "$DST_FILE" ]]; then
DST_FILE=$(basename "$URL")
fi
echo "URL: $URL"
wget -q -O "$DST_DIR/$DST_FILE" "$URL"
}
# $1: URL
# $2: Destination directory
# $3+: Optional file list, otherwise the full archive is extracted to $2
download_and_extract_zip () {
local URL=$1
local DST_DIR=$2
shift
shift
TEMP_DST_DIR=$(mktemp -d)
TEMP_DST_NAME="a.zip"
download_file "$URL" "$TEMP_DST_DIR" "$TEMP_DST_NAME"
unzip -qo "$TEMP_DST_DIR/$TEMP_DST_NAME" -d "$DST_DIR" "$@"
rm -rf "$TEMP_DST_DIR"
}
# $1: File path
# $2: Expected md5sum
md5sum_check () {
local FILE=$1
local EXPECTED=$2
local HASH=$(md5sum "$FILE" | cut -d" " -f1)
if [[ "$EXPECTED" != "$HASH" ]]; then
echo "$FILE: Invalid md5sum $HASH expected $EXPECTED"
return 1
fi
}
INSTALL_DIR=$(cd $PROGDIR/.. && pwd)/data
mkdir -p "$INSTALL_DIR"
# See https://gitlab.freedesktop.org/freetype/freetype/-/issues/1063
download_and_extract_zip "https://github.com/python-pillow/Pillow/files/6622147/As.I.Lay.Dying.zip" "$INSTALL_DIR"
mv "$INSTALL_DIR/As I Lay Dying.ttf" "$INSTALL_DIR/As.I.Lay.Dying.ttf"
md5sum_check "$INSTALL_DIR/As.I.Lay.Dying.ttf" e153d60e66199660f7cfe99ef4705ad7