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
 | |
| 
 |