utils.sh 377 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env bash
  2. # Prevent travis from timing out after 10 minutes of no output
  3. tick() {
  4. (while true; do sleep 300; echo; done) &
  5. local PID=$!
  6. disown
  7. "$@"
  8. local RET=$?
  9. kill $PID
  10. return $RET
  11. }
  12. export -f tick
  13. retry() {
  14. local tries=$1
  15. shift
  16. local i=0
  17. while [ "$i" -lt "$tries" ]; do
  18. "$@" && return 0
  19. sleep $((2**((i++))))
  20. done
  21. return 1
  22. }
  23. export -f retry