forked from fontello/fontello
/
Makefile
124 lines (99 loc) · 3.76 KB
/
Makefile
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
PATH := ./node_modules/.bin:$(PATH)
# Add local versions of ttf2eot nd ttfautohint to the PATH
PATH := $(PATH):./support/font-builder/support/ttf2eot
PATH := $(PATH):./support/font-builder/support/ttfautohint/frontend
PATH := $(PATH):./support/font-builder/bin
PROJECT := $(notdir ${PWD})
TMP_PATH := /tmp/${PROJECT}-$(shell date +%s)
REMOTE_NAME ?= origin
REMOTE_REPO ?= $(shell git config --get remote.${REMOTE_NAME}.url)
FONTS += fontelico.font
FONTS += entypo
FONTS += awesome-uni.font
FONTS += iconic-uni.font
FONTS += typicons.font
FONTS += modernpics.font
FONTS += meteocons.font
FONTS += maki.font
FONTS += zocial.font
FONTS += brandico.font
FONTS += websymbols-uni.font
FONT_CONFIGS = $(foreach f,$(FONTS),src/${f}/config.yml)
help:
echo "make help - Print this help"
echo "make dev-server - Run dev server with autoreleat on files change"
echo "make rebuild-fonts - Rebuild embedded fonts"
echo "make lint - Lint sources with JSHint"
echo "make gh-pages - Build and push the project into gh-pages branch"
rebuild-fonts:
./support/font-builder/bin/font-check.js $(FONT_CONFIGS)
mkdir -p assets/embedded_fonts
for config in $(FONT_CONFIGS); do \
bin/font_copy_to_assets.py -c "$$config" -o assets/embedded_fonts; \
done
bin/build_embedded_fonts_js.py -i assets/embedded_fonts -o lib/embedded_fonts/configs.js $(FONT_CONFIGS)
bin/build_embedded_fonts_css.py -p embedded_fonts/ -o assets/embedded_fonts/fontface-embedded.css.ejs $(FONT_CONFIGS)
# build single font
mkdir ${TMP_PATH}
bin/build_common_font.py -i $(foreach f,$(FONTS), ./src/${f}) -o ${TMP_PATH}/fontello.ttf -c lib/embedded_fonts/glyphs_map.js
ttfautohint --latin-fallback --no-info --windows-compatibility \
--symbol "${TMP_PATH}/fontello.ttf" "${TMP_PATH}/fontello-hinted.ttf"
mv "${TMP_PATH}/fontello-hinted.ttf" "assets/embedded_fonts/fontello.ttf"
fontconvert.py --src_font "assets/embedded_fonts/fontello.ttf" --fonts_dir "assets/embedded_fonts"
ttf2eot < "assets/embedded_fonts/fontello.ttf" > "assets/embedded_fonts/fontello.eot"
rm -rf ${TMP_PATH}
dev-server:
if test ! `which inotifywait` ; then \
echo "You need 'inotifywait' installed in order to run dev-server." >&2 ; \
echo " sudo apt-get install inotify-tools" >&2 ; \
exit 128 ; \
fi
./support/forever.sh
repl:
if test ! `which socat` ; then \
echo "You need `socat` installed in order to run repl." >&2 ; \
echo " sudo apt-get install socat" >&2 ; \
exit 128 ; \
fi
if test ! -e ./tmp/fontello-repl.sock ; then \
echo "You need to start fontello server with --repl." >&2 ; \
echo " ./fontello server --repl" >&2 ; \
exit 128 ; \
fi
socat - UNIX:./tmp/fontello-repl.sock
lint:
if test ! `which jshint` ; then \
echo "You need 'jshint' installed in order to run lint." >&2 ; \
exit 128 ; \
fi
jshint . --show-non-errors
setup:
if test ! -e ./config/application.yml ; then \
cp ./config/application.yml.example ./config/application.yml ; \
fi
cleanup:
# cleanup assets
rm -rf public/assets
test: cleanup lint
mocha ./test/unit/
node ./fontello.js server --test
mocha --timeout 10000 ./test/server/
gh-pages:
@if test -z ${REMOTE_REPO} ; then \
echo 'Remote repo URL not found' >&2 ; \
exit 128 ; \
fi
cp -r ./ ${TMP_PATH} && \
touch ${TMP_PATH}/.nojekyll
cd ${TMP_PATH} && \
git init && \
git add . && \
git commit -q -m 'refreshed at gh-pages'
cd ${TMP_PATH} && \
git remote add remote ${REMOTE_REPO} && \
git push --force remote +master:gh-pages
rm -rf ${TMP_PATH}
todo:
grep 'TODO' -n -r ./lib 2>/dev/null || test true
.PHONY: help rebuild-fonts dev-setup lint gh-pages todo dev-server repl
.SILENT: help rebuild-fonts dev-setup lint todo