2
2
3
3
set -euo pipefail
4
4
5
- BULLET_EXAMPLES_VERSION=0.1.4
5
+ BULLET_EXAMPLES_VERSION=0.2.0
6
6
BULLET_UI_VERSION=0.1.0
7
7
BULLET_WS_VERSION=0.0.1
8
8
JETTY_VERSION=9.3.16.v20170120
@@ -11,11 +11,9 @@ NVM_VERSION=0.33.1
11
11
NODE_VERSION=6.9.4
12
12
13
13
println () {
14
- local DATE=" $( date) "
15
- local FORMAT=$1
16
- shift
17
- printf " ${DATE} [BULLET-QUICKSTART]: "
18
- printf " ${FORMAT} \n" $*
14
+ local DATE
15
+ DATE=" $( date) "
16
+ printf " %s [BULLET-QUICKSTART] %s\n" " ${DATE} " " $1 "
19
17
}
20
18
21
19
print_versions () {
@@ -30,46 +28,61 @@ print_versions() {
30
28
println " Done!"
31
29
}
32
30
31
+ download () {
32
+ local URL=" $1 "
33
+ local FILE=" $2 "
34
+
35
+ local FILE_PATH=" ${BULLET_DOWNLOADS} /${FILE} "
36
+
37
+ if [[ -s " ${FILE_PATH} " ]]; then
38
+ println " Download exists in ${FILE_PATH} . Skipping download..."
39
+ else
40
+ cd " ${BULLET_DOWNLOADS} " && { curl --retry 2 -#LO " ${URL} /${FILE} " ; cd - & > /dev/null; }
41
+ fi
42
+ }
43
+
33
44
export_vars () {
34
- local PWD=" $( pwd) "
45
+ local PWD
46
+ PWD=" $( pwd) "
35
47
36
48
println " Exporting some variables..."
37
49
export BULLET_HOME=" ${PWD} /bullet-quickstart"
38
50
export BULLET_EXAMPLES=$BULLET_HOME /bullet-examples
51
+ export BULLET_DOWNLOADS=$BULLET_HOME /bullet-downloads
39
52
println " Done!"
40
53
}
41
54
42
55
setup () {
43
56
println " Setting up directories..."
44
- mkdir -p $BULLET_HOME /backend/storm
45
- mkdir -p $BULLET_HOME /service
46
- mkdir -p $BULLET_HOME /ui
57
+ mkdir -p " ${BULLET_HOME} /backend/storm"
58
+ mkdir -p " ${BULLET_HOME} /service"
59
+ mkdir -p " ${BULLET_HOME} /ui"
60
+ mkdir -p " ${BULLET_DOWNLOADS} "
47
61
println " Done!"
48
62
}
49
63
50
64
install_bullet_examples () {
51
- cd " ${BULLET_HOME} "
52
65
println " Downloading Bullet Examples ${BULLET_EXAMPLES_VERSION} ..."
53
- curl --retry 2 -#LO " https://github.com/yahoo/bullet-docs/releases/download/v${BULLET_EXAMPLES_VERSION} /examples_artifacts.tar.gz"
66
+ download " https://github.com/yahoo/bullet-docs/releases/download/v${BULLET_EXAMPLES_VERSION} " " examples_artifacts.tar.gz"
67
+
54
68
println " Installing Bullet Examples..."
55
- tar -xzf examples_artifacts.tar.gz
69
+ tar -xzf " ${BULLET_DOWNLOADS} / examples_artifacts.tar.gz" -C " ${BULLET_HOME} "
56
70
println " Done!"
57
71
}
58
72
59
73
install_storm () {
60
74
local STORM=" apache-storm-${STORM_VERSION} "
61
-
62
- cd " ${BULLET_HOME} /backend"
75
+ local BACKEND=" ${BULLET_HOME} /backend/"
63
76
64
77
println " Downloading Storm ${STORM_VERSION} ..."
65
- curl --retry 2 -#O " http://apache.org/dist/storm/${STORM} / ${STORM} .zip"
78
+ download " http://apache.org/dist/storm/${STORM} " " ${STORM} .zip"
66
79
67
80
println " Installing Storm ..."
68
- unzip -qq " ${STORM} .zip"
81
+ unzip -qq " ${BULLET_DOWNLOADS} / ${ STORM} .zip" -d " ${BACKEND} "
69
82
70
83
println " Configuring Storm ..."
71
- export PATH=" $BULLET_HOME /backend /${STORM} /bin/:${PATH} "
72
- echo ' drpc.servers: ["127.0.0.1"]' >> " ${STORM} /conf/storm.yaml"
84
+ export PATH=" ${BACKEND} /${STORM} /bin/:${PATH} "
85
+ echo ' drpc.servers: ["127.0.0.1"]' >> " ${BACKEND} / ${ STORM} /conf/storm.yaml"
73
86
println " Done!"
74
87
}
75
88
@@ -96,7 +109,6 @@ launch_storm() {
96
109
println " =============================================================================="
97
110
sleep 60
98
111
println " =============================================================================="
99
- println " "
100
112
println " Done!"
101
113
}
102
114
@@ -105,12 +117,14 @@ launch_bullet_storm() {
105
117
cp " ${BULLET_EXAMPLES} /storm" /* " ${BULLET_HOME} /backend/storm"
106
118
107
119
println " Launching the Bullet topology..."
120
+ println " =============================================================================="
108
121
cd " ${BULLET_HOME} /backend/storm" && ./launch.sh
122
+ println " =============================================================================="
123
+ println " Done!"
109
124
println " Sleeping for 30 s to ensure all Bullet Storm components are up..."
110
125
println " =============================================================================="
111
126
sleep 30
112
127
println " =============================================================================="
113
- println " "
114
128
115
129
println " Testing the Storm topology"
116
130
println " "
@@ -120,28 +134,30 @@ launch_bullet_storm() {
120
134
}
121
135
122
136
install_jetty () {
123
- cd " ${BULLET_HOME} /service"
137
+ local SERVICE=" ${BULLET_HOME} /service"
138
+ local JETTY_DISTRIBUTION=" jetty-distribution-${JETTY_VERSION} .zip"
124
139
125
140
println " Downloading Jetty ${JETTY_VERSION} ..."
126
- curl --retry 2 -#O " http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${JETTY_VERSION} /jetty-distribution- ${JETTY_VERSION} .zip "
141
+ download " http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${JETTY_VERSION} " " ${JETTY_DISTRIBUTION} "
127
142
128
143
println " Installing Jetty..."
129
- unzip -qq " jetty-distribution- ${JETTY_VERSION} .zip "
144
+ unzip -qq " ${BULLET_DOWNLOADS} / ${JETTY_DISTRIBUTION} " -d " ${SERVICE} "
130
145
println " Done!"
131
146
}
132
147
133
148
launch_bullet_web_service () {
134
- cd " ${BULLET_HOME} /service/jetty-distribution-${JETTY_VERSION} "
149
+ local BULLET_WS_WAR=" bullet-service-${BULLET_WS_VERSION} .war"
150
+ local JETTY_INSTALLATION=" ${BULLET_HOME} /service/jetty-distribution-${JETTY_VERSION} "
135
151
136
152
println " Downloading Bullet Web Service ${BULLET_WS_VERSION} ..."
137
- curl --retry 2 -#Lo webapps/bullet-service.war \
138
- " http://jcenter.bintray.com/com/yahoo/bullet/bullet-service/${BULLET_WS_VERSION} /bullet-service-${BULLET_WS_VERSION} .war"
153
+ download " http://jcenter.bintray.com/com/yahoo/bullet/bullet-service/${BULLET_WS_VERSION} " " ${BULLET_WS_WAR} "
139
154
140
155
println " Configuring Bullet Web Service..."
141
- cp " ${BULLET_EXAMPLES} /web-service" /example_* " ${BULLET_HOME} /service/jetty-distribution-${JETTY_VERSION} "
156
+ cp " ${BULLET_DOWNLOADS} /${BULLET_WS_WAR} " " ${JETTY_INSTALLATION} /webapps/bullet-service.war"
157
+ cp " ${BULLET_EXAMPLES} /web-service/" example_* " ${JETTY_INSTALLATION} "
142
158
143
159
println " Launching Bullet Web Service..."
144
- cd " ${BULLET_HOME} /service/jetty-distribution- ${JETTY_VERSION }"
160
+ cd " ${JETTY_INSTALLATION } "
145
161
java -jar -Dbullet.service.configuration.file=" example_context.properties" -Djetty.http.port=9999 start.jar > logs/out 2>&1 &
146
162
147
163
println " Sleeping for 30 s to ensure Bullet Web Service is up..."
@@ -159,32 +175,41 @@ launch_bullet_web_service() {
159
175
}
160
176
161
177
install_node () {
178
+ # NVM unset var bug
179
+ set +u
180
+
181
+ println " Trying to install nvm. If there is a failure, manually perform: "
182
+ println " curl -s https://raw.githubusercontent.com/creationix/nvm/v${NVM_VERSION} /install.sh | bash"
183
+ println " nvm install v${NODE_VERSION} "
184
+ println " nvm use v${NODE_VERSION} "
185
+ println " and then try this script again..."
186
+
162
187
println " Downloading and installing NVM ${NVM_VERSION} ..."
163
188
curl --retry 2 -s " https://raw.githubusercontent.com/creationix/nvm/v${NVM_VERSION} /install.sh" | bash
164
189
165
- # NVM unset var bug
166
- set +u
167
190
println " Loading nvm into current environment if installation successful..."
168
- export NVM_DIR=" $HOME /.nvm"
169
- [ -s " $NVM_DIR /nvm.sh" ] && . " $NVM_DIR /nvm.sh"
191
+ [ -s " ${HOME} /.nvm/nvm.sh" ] && source " ${HOME} /.nvm/nvm.sh"
170
192
println " Done!"
171
193
172
194
println " Installing Node ${NODE_VERSION} ..."
173
195
nvm install " v${NODE_VERSION} "
174
196
nvm use " v${NODE_VERSION} "
197
+
175
198
set -u
176
199
177
200
println " Done!"
178
201
}
179
202
180
203
launch_bullet_ui () {
181
- cd " ${BULLET_HOME} /ui "
204
+ local BULLET_UI_ARCHIVE= " bullet-ui-v ${BULLET_UI_VERSION} .tar.gz "
182
205
183
206
println " Downloading Bullet UI ${BULLET_UI_VERSION} ..."
184
- curl --retry 2 -#LO " https://github.com/yahoo/bullet-ui/releases/download/v${BULLET_UI_VERSION} /bullet-ui-v${BULLET_UI_VERSION} .tar.gz"
207
+ download " https://github.com/yahoo/bullet-ui/releases/download/v${BULLET_UI_VERSION} " " ${BULLET_UI_ARCHIVE} "
208
+
209
+ cd " ${BULLET_HOME} /ui"
185
210
186
211
println " Installing Bullet UI..."
187
- tar -xzf " bullet-ui-v ${BULLET_UI_VERSION} .tar.gz "
212
+ tar -xzf " ${BULLET_DOWNLOADS} / ${BULLET_UI_ARCHIVE} "
188
213
189
214
println " Configuring Bullet UI..."
190
215
cp " ${BULLET_EXAMPLES} /ui/env-settings.json" config/
@@ -198,29 +223,29 @@ launch_bullet_ui() {
198
223
}
199
224
200
225
cleanup () {
201
- set +eo pipefail
226
+ set +e
202
227
203
- ps aux | grep " [a]pache-storm-${STORM_VERSION} " | awk ' {print $2}' | xargs kill
204
-
205
- ps aux | grep " [e]xpress-server.js" | awk ' {print $2}' | xargs kill
206
-
207
- ps aux | grep " [e]xample_context.properties" | awk ' {print $2}' | xargs kill
228
+ pkill -f " [a]pache-storm-${STORM_VERSION} "
229
+ pkill -f " [e]xpress-server.js"
230
+ pkill -f " [e]xample_context.properties"
208
231
209
232
sleep 3
210
233
211
- rm -rf " ${BULLET_HOME} " /tmp/dev-storm-zookeeper /tmp/jetty-*
234
+ rm -rf " ${BULLET_EXAMPLES} " " ${BULLET_HOME} /backend" " ${BULLET_HOME} /service" \
235
+ " ${BULLET_HOME} /ui" /tmp/dev-storm-zookeeper /tmp/jetty-*
212
236
213
- set -eo pipefail
237
+ set -e
214
238
}
215
239
216
240
teardown () {
217
241
println " Killing and cleaning up all Bullet components..."
218
242
cleanup & > /dev/null
219
- println " Done! Not deleting $HOME /.nvm or nvm additions to $HOME /{.profile, .bash_profile, .zshrc, .bashrc}... "
243
+ println " Done!"
220
244
}
221
245
222
246
unset_all () {
223
- unset -f print_versions println export_vars setup install_bullet_examples \
247
+ unset -f print_versions println download export_vars setup \
248
+ install_bullet_examples \
224
249
install_storm launch_storm launch_bullet_storm \
225
250
install_jetty launch_bullet_web_service \
226
251
install_node launch_bullet_ui \
@@ -251,8 +276,13 @@ launch() {
251
276
}
252
277
253
278
clean () {
279
+ println " Launching cleanup..."
254
280
export_vars
255
281
teardown
282
+ println " Not deleting ${BULLET_DOWNLOADS} , ${HOME} /.nvm or nvm additions to ${HOME} /{.profile, .bash_profile, .zshrc, .bashrc}..."
283
+ println " Cleaned up ${BULLET_HOME} and /tmp"
284
+ println " To delete all download artifacts (excluding nvm), do:"
285
+ println " rm -rf ${BULLET_HOME} "
256
286
unset_all
257
287
}
258
288
0 commit comments