-
-
Notifications
You must be signed in to change notification settings - Fork 614
/
build-woff2.sh
executable file
·164 lines (130 loc) · 4.3 KB
/
build-woff2.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/bin/sh
# ///////////////////////////////////////////////////////////////////
#
# build-woff2.sh
# A shell script that builds the Hack woff2 web fonts from ttf files
# Copyright 2018 Christopher Simpkins
# MIT License
#
# Usage: ./build-woff2.sh (--install-dependencies)
# Arguments:
# --install-dependencies (optional) - installs all
# build dependencies prior to the build script execution
#
# NOTE: If you change the source, you must build new ttf files
# with build.sh PRIOR to execution of this script.
# This script builds directly from previous ttf builds,
# not source files.
#
# ///////////////////////////////////////////////////////////////////
# The woff2 git clone directory.
BUILD="$HOME"
INST="$HOME/woff2"
# woff2 executable path
WOFF2_BIN="$BUILD/woff2/woff2_compress"
# The font build directory paths and file paths for the woff builds
TTF_BUILD="build/ttf"
WOFF_BUILD="build/web/fonts"
REGULAR_TTF="Hack-Regular.ttf"
REGULAR_PRE="Hack-Regular.woff2"
REGULAR_WOFF="hack-regular.woff2"
BOLD_TTF="Hack-Bold.ttf"
BOLD_PRE="Hack-Bold.woff2"
BOLD_WOFF="hack-bold.woff2"
ITALIC_TTF="Hack-Italic.ttf"
ITALIC_PRE="Hack-Italic.woff2"
ITALIC_WOFF="hack-italic.woff2"
BOLDITALIC_TTF="Hack-BoldItalic.ttf"
BOLDITALIC_PRE="Hack-BoldItalic.woff2"
BOLDITALIC_WOFF="hack-bolditalic.woff2"
# test for number of arguments
if [ $# -gt 1 ]
then
echo "Inappropriate arguments included in your command." 1>&2
echo "Usage: ./build-woff2.sh (--install-dependencies)" 1>&2
exit 1
fi
# Optional build dependency install request with syntax `./build-web.sh --install-dependencies`
if [ "$1" = "--install-dependencies" ]
then
# define the current directory (Hack repository)
CUR_DIR=$(pwd)
if test -d "$INST" -o -f "$INST"; then
echo "Build directory \`$INST' must not exist."
exit 1
fi
cd "$BUILD" || exit 1
echo "#####"
echo "git clone woff2 project"
echo "#####"
# clone the Source Foundry fork of the woff2 repo
# contains fix for OS X build bug - https://github.com/google/woff2/issues/73
# recursive flag to clone the brotli submodule within the woff2 repo
git clone --recursive https://github.com/source-foundry/woff2.git
cd "$INST" || exit 1
echo "#####"
echo "Build woff2"
echo "#####"
make clean all
# make Hack repository the current directory again following the build
cd "$CUR_DIR" || exit 1
fi
if [ -f "$WOFF2_BIN" ]; then
echo "Beginning web font build with $WOFF2_BIN"
else
echo "Unable to locate woff2_compress on path $WOFF2_BIN. Please attempt a manual install of this build dependency and then repeat your build attempt." 1>&2
exit 1
fi
# Build woff2 files from ttf files
# regular set
if ! "$WOFF2_BIN" "$TTF_BUILD/$REGULAR_TTF"; then
echo "Failed to build woff2 from $REGULAR_TTF." 1>&2
exit 1
else
echo "Regular woff2 font set successfully built from $REGULAR_TTF"
fi
# bold set
if ! "$WOFF2_BIN" "$TTF_BUILD/$BOLD_TTF"; then
echo "Failed to build woff2 from $BOLD_TTF" 1>&2
exit 1
else
echo "Bold woff2 set successfully built from $BOLD_TTF"
fi
# italic set
if ! "$WOFF2_BIN" "$TTF_BUILD/$ITALIC_TTF"; then
echo "Failed to build woff2 from $ITALIC_TTF" 1>&2
exit 1
else
echo "Italic woff2 set successfully built from $ITALIC_TTF"
fi
# bold italic set
if ! "$WOFF2_BIN" "$TTF_BUILD/$BOLDITALIC_TTF"; then
echo "Failed to build woff2 from $BOLDITALIC_TTF" 1>&2
exit 1
else
echo "Bold Italic woff2 set successfully built from $BOLDITALIC_TTF"
fi
echo "Moving woff2 files to build directory..."
# create directory if it does not exist
# (occurs with git + empty directories)
if ! [ -d "$WOFF_BUILD" ]; then
mkdir $WOFF_BUILD
fi
# move woff2 files to appropriate build directory
mv "$TTF_BUILD/$REGULAR_PRE" "$WOFF_BUILD/$REGULAR_WOFF"
mv "$TTF_BUILD/$BOLD_PRE" "$WOFF_BUILD/$BOLD_WOFF"
mv "$TTF_BUILD/$ITALIC_PRE" "$WOFF_BUILD/$ITALIC_WOFF"
mv "$TTF_BUILD/$BOLDITALIC_PRE" "$WOFF_BUILD/$BOLDITALIC_WOFF"
echo " "
if [ -f "$WOFF_BUILD/$REGULAR_WOFF" ]; then
echo "Regular woff2 build path: $WOFF_BUILD/$REGULAR_WOFF"
fi
if [ -f "$WOFF_BUILD/$BOLD_WOFF" ]; then
echo "Bold woff2 build path: $WOFF_BUILD/$BOLD_WOFF"
fi
if [ -f "$WOFF_BUILD/$ITALIC_WOFF" ]; then
echo "Italic woff2 build path: $WOFF_BUILD/$ITALIC_WOFF"
fi
if [ -f "$WOFF_BUILD/$BOLDITALIC_WOFF" ]; then
echo "Bold Italic woff2 build path: $WOFF_BUILD/$BOLDITALIC_WOFF"
fi