+#!/usr/bin/env bash
+
+set -ueo pipefail
+
+VERBOSE=${VERBOSE:-}
+lastCleverActivity=""
+timeout=2300 # 100 seconds less than the Ansible tasks' timeout
+startTime=$(date +%s)
+
+function cleverActivity {
+ lastCleverActivity=$(clever activity)
+}
+
+function ensure {
+ local lastReturnCode="$?"
+
+ VERBOSE=true
+ verbose
+
+ if isNotTimeout
+ then
+ if [ "$lastReturnCode" == "0" ]
+ then
+ echo "✓ Deployment done."
+ else
+ echo "✗ Deployment failed!"
+ fi
+ else
+ echo "⁈ Deployment timeout... Please check clever logs"
+ exit 1
+ fi
+}
+
+function isNotTimeout {
+ [ $(($(date +%s) - startTime)) -lt $timeout ]
+}
+
+trap ensure EXIT ERR