#!/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