41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -eo pipefail
 | |
| source "$(dirname "$0")/utils.sh"
 | |
| 
 | |
| is_backup_not_exist() {
 | |
|     local backup_dir="$1"
 | |
|     # Save the current value of 'set -e'
 | |
|     local previous_e
 | |
|     previous_e=$(set +e; :; echo $?)
 | |
|     # Temporarily turn off 'set -e'
 | |
|     set +e
 | |
|     # Run ls command to check if any files matching the pattern exist
 | |
|     ls "${backup_dir}"/*.tar.* 1> /dev/null 2>&1
 | |
|     # Store the exit status of the ls command
 | |
|     local ls_exit_status=$?
 | |
|     # Restore the previous value of 'set -e'
 | |
|     [ "$previous_e" = "0" ] && set -e
 | |
|     # Return true if ls command succeeded (no files found), otherwise return false
 | |
|     [ $ls_exit_status -ne 0 ]
 | |
| }
 | |
| 
 | |
| [[ -z "${BACKUP_DIR}" ]] && { _log "ERROR" "Required 'BACKUP_DIR' env not set"; exit 1; }
 | |
| 
 | |
| # Check if we have any backup
 | |
| if is_backup_not_exist "${BACKUP_DIR}"; then
 | |
|   _log "No backups exist in ${BACKUP_DIR}"
 | |
|   echo "-1"
 | |
|   exit 0
 | |
| fi
 | |
| 
 | |
| # Search for all the tar.* inside the backup dir to support the migration between gzip vs zstd
 | |
| latest=$(find "${BACKUP_DIR}"/*.tar.* -maxdepth 0 -exec basename {} \; | sort -g | tail -n 1)
 | |
| 
 | |
| if [[ "${latest}" == "" ]]; then
 | |
|   _log "Could not get the latest backup."
 | |
|   echo "-1"
 | |
| else
 | |
|   echo "${latest%%.*}"
 | |
| fi
 |