summaryrefslogtreecommitdiffstats
path: root/.travis/utils.sh
diff options
context:
space:
mode:
Diffstat (limited to '.travis/utils.sh')
-rw-r--r--.travis/utils.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/.travis/utils.sh b/.travis/utils.sh
new file mode 100644
index 000000000..d084a7aef
--- /dev/null
+++ b/.travis/utils.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+# Prevent travis from timing out after 10 minutes of no output
+tick() {
+ (while true; do sleep 300; echo; done) &
+ local PID=$!
+ disown
+
+ "$@"
+ local RET=$?
+
+ kill $PID
+ return $RET
+}
+export -f tick
+
+retry() {
+ local tries=$1
+ shift
+
+ local i=0
+ while [ "$i" -lt "$tries" ]; do
+ "$@" && return 0
+ sleep $((2**((i++))))
+ done
+
+ return 1
+}
+export -f retry