#!/bin/bash

# Function that can be used to re-call a specific command a specific amount of times if it fails.
#   @param ${1} Amount of retry calls
#   @param ${2} Code block that will be invoked
function retryCall() {
  retries=0

  until [ ${retries} -gt ${1} ]; do
    # Call the command and break the loop if it exits without any errors.
    (${2}) && return 0

    # Increase the counter of the invoked retries.
    retries=$[${retries} + 1]

    # Sleep a few seconds and log an info message if there are still remaining retries.
    if [ ${retries} -le ${1} ]; then
      echo "Script didn't exit without errors. Retrying $[${1} - retries + 1] times..."
      sleep 1
    fi
  done

  echo "Script exited with errors. Exiting process.."
  exit 1
}
