Skip to content

Commit 82f8e99

Browse files
add uninstall event to run-ab-platform (#38627)
1 parent c3462c0 commit 82f8e99

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

run-ab-platform.sh

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ VERSION=0.61.0
55
set -o nounset # -u exit if a variable is not set
66
set -o errexit # -f exit for any command failure"
77

8+
readonly scriptVersion="$VERSION"
9+
810
# text color escape codes (please note \033 == \e but OSX doesn't respect the \e)
911
blue_text='\033[94m'
1012
red_text='\033[31m'
@@ -56,6 +58,7 @@ readonly eventStateSuccess="succeeded"
5658
readonly eventTypeDownload="download"
5759
readonly eventTypeInstall="install"
5860
readonly eventTypeRefresh="refresh"
61+
readonly eventTypeUninstall="uninstall"
5962

6063
telemetrySuccess=false
6164
telemetrySessionULID=""
@@ -120,26 +123,39 @@ TelemetryDockerUp()
120123
# for up to 1200 seconds (20 minutes), check to see if the server services is in a running state
121124
end=$((SECONDS+1200))
122125
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)
124127
if [ "$webappState" = "running" ]; then
125128
TelemetrySend $eventStateSuccess $eventTypeInstall
126-
break
129+
return
127130
fi
128131
sleep 1
129132
done
130133

131-
TelemetrySend "failed" "install" "webapp was not running within 1200 seconds"
134+
TelemetrySend $eventStateFailed $eventTypeInstall "webapp was not running within 1200 seconds"
132135
}
133136

134137
readonly telemetryKey="kpYsVGLgxEqD5OuSZAQ9zWmdgBlyiaej"
135138
readonly telemetryURL="https://api.segment.io/v1/track"
136-
TelemetrySend()
139+
140+
TelemetrySendTrap()
137141
{
138142
if $telemetrySuccess; then
139143
# due to how traps work, we don't want to send a failure for exiting docker after we sent a success
140144
return
141145
fi
142146

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+
{
143159
if $telemetryEnabled; then
144160
# start, failed, success
145161
local state=$1
@@ -158,7 +174,7 @@ TelemetrySend()
158174
"session_id":"$telemetrySessionULID",
159175
"state":"$state",
160176
"os":"$OSTYPE",
161-
"script_version":"$VERSION",
177+
"script_version":"$scriptVersion",
162178
"error":"$err"
163179
},
164180
"timestamp":"$now",
@@ -246,16 +262,16 @@ for argument in $args; do
246262
case $argument in
247263
-d | --download)
248264
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
251267
Download
252268
TelemetrySend $eventStateSuccess $eventTypeDownload
253269
exit
254270
;;
255271
-r | --refresh)
256272
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
259275
DeleteLocalAssets
260276
Download
261277
TelemetrySend $eventStateSuccess $eventTypeRefresh
@@ -283,8 +299,8 @@ for argument in $args; do
283299
done
284300

285301
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
288304

289305
########## Pointless Banner for street cred ##########
290306
# Make sure the console is huuuge
@@ -337,7 +353,10 @@ if test $? -ne 0; then
337353
echo -e "$red_text""please consider removing old containers""$default_text"
338354
TelemetrySend $eventStateFailed $eventTypeInstall "docker compose failed"
339355
else
340-
TelemetrySend $eventStateSuccess $eventTypeInstall
356+
if [ -z "$dockerDetachedMode" ]; then
357+
# not running in detached mode
358+
TelemetrySend $eventStateSuccess $eventTypeUninstall
359+
fi
341360
fi
342361

343362
########## Ending Docker ##########

0 commit comments

Comments
 (0)