-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfonts.sh
executable file
·63 lines (47 loc) · 2.08 KB
/
fonts.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/usr/bin/env bash
#set -x
set -eo pipefail
# IN
read -r -a FONT_FILES_KEYS <<< ${FONT_FILES_KEYS=?Define FONT_FILES_KEYS}
FONT_FULL=/tmp/in/${FONT_NAME=?Define FONT_NAME}
# OUT
echo UNICODE_RANGE_OTHER=${UNICODE_RANGE_OTHER:=/tmp/unicode_range_other.txt}
UNICODE_RANGE_LESS=/tmp/less/unicode-range.less
FONTS_TARGET=/tmp/font/
[[ ! -d ${FONTS_TARGET} && -w ${FONTS_TARGET} ]] && echo "FONTS_TARGET should be a directory" && exit 1
[[ ! -w $(dirname ${UNICODE_RANGE_OTHER}) ]] && echo "UNICODE_RANGE_OTHER file should be in a writable directory" && exit 1
echo "Will affect generated files to ${USERID:?Define USERID}"
# COMPUTED
FONT_FULL_NAME=$(basename ${FONT_FULL})
FONT_NAME=${FONT_FULL_NAME%.*}
CHECKFONT_RANGES=""
for RANGE_NAME in "${FONT_FILES_KEYS[@]}"
do
FONT_FILE_NAME=${FONTS_TARGET}${FONT_NAME}-${RANGE_NAME}
RANGE_FILE_NAME=/tmp/in/unicode-range-${RANGE_NAME}.txt
pyftsubset ${FONT_FULL} --name-IDs='*' --no-ignore-missing-unicodes \
--unicodes-file=${RANGE_FILE_NAME} \
--output-file=${FONT_FILE_NAME}.woff --flavor=woff
pyftsubset ${FONT_FULL} --name-IDs='*' --no-ignore-missing-unicodes \
--unicodes-file=${RANGE_FILE_NAME} \
--output-file=${FONT_FILE_NAME}.woff2 --flavor=woff2
chown ${USERID} ${FONT_FILE_NAME}.woff
chown ${USERID} ${FONT_FILE_NAME}.woff2
if [ -n "$CHECKFONT_RANGES" ]; then
CHECKFONT_RANGES="$CHECKFONT_RANGES|"
fi
CHECKFONT_RANGES="$CHECKFONT_RANGES$RANGE_NAME"
echo "Font range '${RANGE_NAME}' written."
done
/usr/app/checkfont.py ${FONT_FULL} ${CHECKFONT_RANGES} ${UNICODE_RANGE_LESS} ${UNICODE_RANGE_OTHER}
# WRITE OTHER
pyftsubset ${FONT_FULL} --name-IDs='*' \
--unicodes-file=${UNICODE_RANGE_OTHER} \
--output-file=${FONTS_TARGET}${FONT_NAME}-the-rest.woff --flavor=woff
pyftsubset ${FONT_FULL} --name-IDs='*' \
--unicodes-file=${UNICODE_RANGE_OTHER} \
--output-file=${FONTS_TARGET}${FONT_NAME}-the-rest.woff2 --flavor=woff2
echo "Font range 'the rest' written."
chown ${USERID} ${UNICODE_RANGE_LESS}
chown ${USERID} ${FONTS_TARGET}${FONT_NAME}-the-rest.woff
chown ${USERID} ${FONTS_TARGET}${FONT_NAME}-the-rest.woff2