You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							27 lines
						
					
					
						
							503 B
						
					
					
				
			
		
		
	
	
							27 lines
						
					
					
						
							503 B
						
					
					
				#!/bin/bash
 | 
						|
 | 
						|
function fail {
 | 
						|
  echo $1 >&2
 | 
						|
  exit 1
 | 
						|
}
 | 
						|
 | 
						|
function retry {
 | 
						|
  local n=1
 | 
						|
  local max=3 # 3 retries before failure
 | 
						|
  local delay=5 # delay between retries, 5 seconds
 | 
						|
  while true; do
 | 
						|
    echo "Running command '$@' with retry, attempt $n/$max"
 | 
						|
    "$@" && break || {
 | 
						|
      if [[ $n -lt $max ]]; then
 | 
						|
        ((n++))
 | 
						|
        sleep $delay;
 | 
						|
      else
 | 
						|
        fail "The command has failed after $n attempts."
 | 
						|
      fi
 | 
						|
    }
 | 
						|
  done
 | 
						|
}
 | 
						|
 | 
						|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
 | 
						|
    retry "$@"
 | 
						|
fi
 | 
						|
 |