-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
151 lines (123 loc) · 5.37 KB
/
Makefile
File metadata and controls
151 lines (123 loc) · 5.37 KB
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
# set AWS keys
include Makefile.keys
ZIP = zip
#FUNCTIONS = bracery-store bracery-view bracery-asset bracery-expand bracery-login bracery-twitter bracery-bot bracery-news bracery-index bracery-bookmark bracery-react
FUNCTIONS = bracery-store bracery-asset bracery-login bracery-twitter bracery-bot bracery-news bracery-index bracery-bookmark bracery-react
ZIPFILES = $(addsuffix .zip,$(FUNCTIONS))
PUBLISH_PSEUDOTARGETS = $(addsuffix .publish,$(FUNCTIONS))
all: $(ZIPFILES)
publish: $(PUBLISH_PSEUDOTARGETS)
%.publish: %.zip
@echo Publishing $* '('`stat -f %z $<` 'bytes)'
@AWS_ACCESS_KEY_ID=$(AWS_ACCESS_KEY_ID) AWS_SECRET_ACCESS_KEY=$(AWS_SECRET_ACCESS_KEY) aws lambda update-function-code --region $(AWS_DEFAULT_REGION) --publish --zip-file fileb://$< --function-name $* >$@
STAGING_DIR = stage
STORE_NPM_DEPS = dynamodb-doc
COMMON = bracery-config.js bracery-web.js bracery-util.js
bracery-store.zip: bracery-store.js $(COMMON)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cd $(STAGING_DIR); npm install $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
OAUTH_NPM_DEPS = oauth
TWITTER_NPM_DEPS = twit
bracery-twitter.zip: bracery-twitter.js $(COMMON)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cd $(STAGING_DIR); npm install $(OAUTH_NPM_DEPS) $(TWITTER_NPM_DEPS) $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
bracery-login.zip: bracery-login.js $(COMMON)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cd $(STAGING_DIR); npm install $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
NODE_MODULES = ../node_modules
COMPROMISE = compromise.es6.min.js
COMPROMISE_DIR = $(NODE_MODULES)/compromise/builds
COMPROMISE_DEP = $(COMPROMISE_DIR)/$(COMPROMISE)
RITA = rita-tiny.js
RITA_DIR = $(NODE_MODULES)/rita/lib
RITA_DEP = $(RITA_DIR)/$(RITA)
BRACERY_SOURCES = bracery.js template.js parsetree.js chomsky.js validator.js rhs.js
BRACERY_SOURCE_DIR = ../src
BRACERY_DEPS = $(addprefix $(BRACERY_SOURCE_DIR)/,$(BRACERY_SOURCES))
EXPAND_DEPS = $(COMPROMISE_DEP) $(RITA_DEP) $(BRACERY_DEPS)
VIEW_NPM_DEPS = marked
bracery-view.zip: bracery-view.js $(COMMON) view.html $(EXPAND_DEPS)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/view.html $(STAGING_DIR)/index.html
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cd $(STAGING_DIR); npm install $(VIEW_NPM_DEPS) $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
bracery-react.zip: bracery-view.js $(COMMON) main.html $(EXPAND_DEPS)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/main.html $(STAGING_DIR)/index.html
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cd $(STAGING_DIR); npm install $(VIEW_NPM_DEPS) $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
ASSETS = asset/bracery-view.js asset/bracery-view.css asset/app.js asset/app.css asset/manifest.json
GZIPPED_ASSETS = $(addsuffix .gz,$(ASSETS))
bracery-asset.zip: bracery-asset.js $(COMMON) $(ASSETS)
cp $< index.js
$(ZIP) $@ index.js $(COMMON) $(ASSETS)
rm index.js
asset/%.gz: asset/%
gzip -ck $< >$@
asset/app.js: app/build/static/js
(cat $</runtime~main.*.js; echo; cat $</main.*.chunk.js; echo; cat $</2.*.chunk.js) >$@
asset/app.css: app/build/static/css
cp $</main.*.chunk.css $@
asset/manifest.json: app/build/manifest.json
cp $< $@
WEB_BRACERY = ../web/bracery.min.js
MARKED = marked.min.js
MARKED_DIR = ../node_modules/marked
asset/bracery-view.js: $(WEB_BRACERY) $(MARKED_DIR)/$(MARKED) $(RITA_DEP) asset/bracery-web.js asset/tooltips.js asset/view.js
cat $^ >$@
asset/bracery-web.js: asset/bracery-web-shim.js $(COMMON)
browserify $< >$@
bracery-expand.zip: bracery-expand.js $(COMMON) $(EXPAND_DEPS)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cp $(COMPROMISE_DEP) $(STAGING_DIR)
cp $(RITA_DEP) $(STAGING_DIR)
cp $(BRACERY_DEPS) $(STAGING_DIR)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
BOT_NPM_DEPS = $(VIEW_NPM_DEPS) textversionjs html-entities
bracery-bot.zip: bracery-bot.js $(COMMON) $(EXPAND_DEPS)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)/node_modules
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cp $(COMPROMISE_DEP) $(STAGING_DIR)
cp $(RITA_DEP) $(STAGING_DIR)
cp $(BRACERY_DEPS) $(STAGING_DIR)
cd $(STAGING_DIR); npm install $(TWITTER_NPM_DEPS) $(BOT_NPM_DEPS) $(STORE_NPM_DEPS)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
bracery-news.zip: bracery-news.js $(COMMON)
cp $< index.js
$(ZIP) $@ index.js $(COMMON)
rm index.js
bracery-index.zip: bracery-index.js $(COMMON) $(COMPROMISE_DEP) $(BRACERY_DEPS)
(test -e $(STAGING_DIR) && rm -rf $(STAGING_DIR)) || true
mkdir -p $(STAGING_DIR)
cp $^ $(STAGING_DIR)
mv $(STAGING_DIR)/$< $(STAGING_DIR)/index.js
cp $(COMPROMISE_DEP) $(STAGING_DIR)
cp $(BRACERY_DEPS) $(STAGING_DIR)
cd $(STAGING_DIR); $(ZIP) -r ../$@ *
bracery-bookmark.zip: bracery-bookmark.js $(COMMON)
cp $< index.js
$(ZIP) $@ index.js $(COMMON)
rm index.js