blob: 330a55a486fea419c0d1803911a397fff1c5fcfe (
plain) (
blame)
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
|
SHELL=/bin/bash
ENV ?= dev
export PATH := $(PATH):./node_modules/.bin
# Javascript objects
JS_SRC_DIR=js
JS_BUILD_DIR=build/js
JSX_SRC=header_footer.jsx main.jsx signup.jsx signin.jsx otp.jsx poloniex.jsx password_reset.jsx change_password.jsx account.jsx balance.jsx admin.jsx panel.jsx icon.jsx
JS_SRC=cookies.js app.js api.js
JSX_OBJS=$(addprefix $(JS_BUILD_DIR)/,$(JSX_SRC:.jsx=.js))
JS_OBJS=$(addprefix $(JS_BUILD_DIR)/,$(JS_SRC))
# Static resources
STATIC_BUILD_DIR=build/static
STATIC_FILES=index.html style.css
# Fontello icon provider - regular icons
STATIC_FILES+=fontello.css
STATIC_FILES+=$(addprefix fonts/, fontello.eot fontello.svg fontello.ttf fontello.woff fontello.woff2)
FONTELLO_TMP_DIR = ./static/fontello
FONTELLO_HOST ?= http://fontello.com
# Biticonics cryptocurrency icon provider.
STATIC_FILES+=$(addprefix fonts/, bitonics.min.css)
CRYPTO_ICONS_FONTS=$(addprefix $(STATIC_BUILD_DIR)/fonts/glyphs/ttf/, $(notdir $(wildcard static/fonts/glyphs/ttf/*.ttf)))
CRYPTO_ICONS_FONTS+=$(addprefix $(STATIC_BUILD_DIR)/fonts/glyphs/woff/, $(notdir $(wildcard static/fonts/glyphs/woff/*.woff)))
CRYPTO_ICONS_FONTS+=$(addprefix $(STATIC_BUILD_DIR)/fonts/glyphs/woff2/, $(notdir $(wildcard static/fonts/glyphs/woff2/*.woff2)))
define fetch-bitonics-icons =
DIR="static/fonts/glyphs"
curl 'https://bitonics.net/vendor/bitonics/bitonics.min.css' > static/fonts/bitonics.min.css
glyphs=($(curl 'https://bitonics.net/vendor/bitonics/bitonics.css' | grep -Po 'glyphs/ttf/[a-z0-9]{8}' | cut -c 12-))
for glyph in "${glyphs[@]}"
do
if [ ! -f "$DIR/ttf/$glyph.ttf" ]; then
curl "https://bitonics.net/vendor/bitonics/glyphs/ttf/$glyph.ttf" > "$DIR/ttf/$glyph.ttf"
curl "https://bitonics.net/vendor/bitonics/glyphs/woff/$glyph.woff" > "$DIR/woff/$glyph.woff"
curl "https://bitonics.net/vendor/bitonics/glyphs/woff2/$glyph.woff2" > "$DIR/woff2/$glyph.woff2"
fi
done
endef
# Rules
install:
node --version
npm --version
yarn --version
yarn install
$(JS_BUILD_DIR):
mkdir -p $@
$(STATIC_BUILD_DIR)/fonts:
mkdir -p $@
$(STATIC_BUILD_DIR)/fonts/glyphs:
mkdir -p $@/ttf
mkdir -p $@/woff
mkdir -p $@/woff2
static: js $(addprefix $(STATIC_BUILD_DIR)/, $(STATIC_FILES)) $(CRYPTO_ICONS_FONTS)
js: build/static/main.js
$(STATIC_BUILD_DIR)/%: static/% $(STATIC_BUILD_DIR)/fonts
cp $< $@
$(JS_BUILD_DIR)/%.js: $(JS_SRC_DIR)/%.jsx
eslint --fix $<
cp $< $@
$(JS_BUILD_DIR)/%.js: $(JS_SRC_DIR)/%.js
eslint $<
cp $< $@
$(STATIC_BUILD_DIR)/fonts/glyphs/%: static/fonts/glyphs/% $(STATIC_BUILD_DIR)/fonts/glyphs
cp $< $@
build/static/main.js: $(JS_BUILD_DIR) $(JSX_OBJS) $(JS_OBJS) env/$(ENV).env
browserify -t [ babelify --presets [ env react ] --plugins [ transform-class-properties ] ] \
-t [ localenvify --envfile env/$(ENV).env ] \
-t [ debowerify ] \
$(JS_BUILD_DIR)/main.js -o $@
build/webapp.tar.gz: $(addprefix $(STATIC_BUILD_DIR)/, $(STATIC_FILES)) build/static/main.js $(CRYPTO_ICONS_FONTS)
tar czf $@ --directory=$(dir $<) $(subst $(STATIC_BUILD_DIR)/,,$^)
release: build/webapp.tar.gz
clean:
rm -rf build
rm -rf node_modules
fontello-open:
@if test ! `which curl` ; then \
echo 'Install curl first.' >&2 ; \
exit 128 ; \
fi
curl --silent --show-error --fail --output .fontello \
--form "config=@static/fontello_config.json" \
${FONTELLO_HOST}
x-www-browser ${FONTELLO_HOST}/`cat .fontello`
fontello-save:
@if test ! `which unzip` ; then \
echo 'Install unzip first.' >&2 ; \
exit 128 ; \
fi
@if test ! -e .fontello ; then \
echo 'Run `make fontopen` first.' >&2 ; \
exit 128 ; \
fi
rm -rf .fontello.src .fontello.zip
curl --silent --show-error --fail --output .fontello.zip \
${FONTELLO_HOST}/`cat .fontello`/get
unzip .fontello.zip -d .fontello.src
rm -rf ${FONTELLO_TMP_DIR}
mv `find ./.fontello.src -maxdepth 1 -name 'fontello-*'` ${FONTELLO_TMP_DIR}
rm -rf .fontello.src .fontello.zip
cp ${FONTELLO_TMP_DIR}/font/* static/fonts/
cp ${FONTELLO_TMP_DIR}/css/fontello-codes.css static/fontello.css
cp ${FONTELLO_TMP_DIR}/config.json static/fontello_config.json
rm -rf ${FONTELLO_TMP_DIR}
crypto-icons: ; $(value fetch-bitonics-icons)
.ONESHELL:
|