@@ -5,6 +5,8 @@ VERSION=0.61.0
5
5
set -o nounset # -u exit if a variable is not set
6
6
set -o errexit # -f exit for any command failure"
7
7
8
+ readonly scriptVersion=" $VERSION "
9
+
8
10
# text color escape codes (please note \033 == \e but OSX doesn't respect the \e)
9
11
blue_text=' \033[94m'
10
12
red_text=' \033[31m'
@@ -56,6 +58,7 @@ readonly eventStateSuccess="succeeded"
56
58
readonly eventTypeDownload=" download"
57
59
readonly eventTypeInstall=" install"
58
60
readonly eventTypeRefresh=" refresh"
61
+ readonly eventTypeUninstall=" uninstall"
59
62
60
63
telemetrySuccess=false
61
64
telemetrySessionULID=" "
@@ -120,26 +123,39 @@ TelemetryDockerUp()
120
123
# for up to 1200 seconds (20 minutes), check to see if the server services is in a running state
121
124
end=$(( SECONDS+ 1200 ))
122
125
while [ $SECONDS -lt $end ]; do
123
- webappState=$( docker compose ps --all --format " {{.Service}}:{{.State}}" 2> /dev/null | grep server | cut -d " :" -f2 | xargs)
126
+ webappState=$( docker compose ps --all --format " {{.Service}}:{{.State}}" 2> /dev/null | grep ^ server | cut -d " :" -f2 | xargs)
124
127
if [ " $webappState " = " running" ]; then
125
128
TelemetrySend $eventStateSuccess $eventTypeInstall
126
- break
129
+ return
127
130
fi
128
131
sleep 1
129
132
done
130
133
131
- TelemetrySend " failed " " install " " webapp was not running within 1200 seconds"
134
+ TelemetrySend $eventStateFailed $eventTypeInstall " webapp was not running within 1200 seconds"
132
135
}
133
136
134
137
readonly telemetryKey=" kpYsVGLgxEqD5OuSZAQ9zWmdgBlyiaej"
135
138
readonly telemetryURL=" https://api.segment.io/v1/track"
136
- TelemetrySend ()
139
+
140
+ TelemetrySendTrap ()
137
141
{
138
142
if $telemetrySuccess ; then
139
143
# due to how traps work, we don't want to send a failure for exiting docker after we sent a success
140
144
return
141
145
fi
142
146
147
+ # start, failed, success
148
+ local state=$1
149
+ # install, uninstall
150
+ local event=$2
151
+ # optional error
152
+ local err=${3:- " " }
153
+
154
+ TelemetrySend " $state " " $event " " $err "
155
+ }
156
+
157
+ TelemetrySend ()
158
+ {
143
159
if $telemetryEnabled ; then
144
160
# start, failed, success
145
161
local state=$1
@@ -158,7 +174,7 @@ TelemetrySend()
158
174
"session_id":"$telemetrySessionULID ",
159
175
"state":"$state ",
160
176
"os":"$OSTYPE ",
161
- "script_version":"$VERSION ",
177
+ "script_version":"$scriptVersion ",
162
178
"error":"$err "
163
179
},
164
180
"timestamp":"$now ",
@@ -246,16 +262,16 @@ for argument in $args; do
246
262
case $argument in
247
263
-d | --download)
248
264
TelemetrySend $eventStateStarted $eventTypeDownload
249
- trap ' TelemetrySend $eventStateFailed $eventTypeDownload "sigint"' SIGINT
250
- trap ' TelemetrySend $eventStateFailed $eventTypeDownload "sigterm"' SIGTERM
265
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeDownload "sigint"' SIGINT
266
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeDownload "sigterm"' SIGTERM
251
267
Download
252
268
TelemetrySend $eventStateSuccess $eventTypeDownload
253
269
exit
254
270
;;
255
271
-r | --refresh)
256
272
TelemetrySend $eventStateStarted $eventTypeRefresh
257
- trap ' TelemetrySend $eventStateFailed $eventTypeRefresh "sigint"' SIGINT
258
- trap ' TelemetrySend $eventStateFailed $eventTypeRefresh "sigterm"' SIGTERM
273
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeRefresh "sigint"' SIGINT
274
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeRefresh "sigterm"' SIGTERM
259
275
DeleteLocalAssets
260
276
Download
261
277
TelemetrySend $eventStateSuccess $eventTypeRefresh
@@ -283,8 +299,8 @@ for argument in $args; do
283
299
done
284
300
285
301
TelemetrySend $eventStateStarted $eventTypeInstall
286
- trap ' TelemetrySend $eventStateFailed $eventTypeInstall "sigint"' SIGINT
287
- trap ' TelemetrySend $eventStateFailed $eventTypeInstall "sigterm"' SIGTERM
302
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeInstall "sigint"' SIGINT
303
+ trap ' TelemetrySendTrap $eventStateFailed $eventTypeInstall "sigterm"' SIGTERM
288
304
289
305
# ######### Pointless Banner for street cred ##########
290
306
# Make sure the console is huuuge
@@ -337,7 +353,10 @@ if test $? -ne 0; then
337
353
echo -e " $red_text " " please consider removing old containers" " $default_text "
338
354
TelemetrySend $eventStateFailed $eventTypeInstall " docker compose failed"
339
355
else
340
- TelemetrySend $eventStateSuccess $eventTypeInstall
356
+ if [ -z " $dockerDetachedMode " ]; then
357
+ # not running in detached mode
358
+ TelemetrySend $eventStateSuccess $eventTypeUninstall
359
+ fi
341
360
fi
342
361
343
362
# ######### Ending Docker ##########
0 commit comments