39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
#!/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
|
|
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
|
|
echo "-1"
|
|
else
|
|
echo "${latest%%.*}"
|
|
fi
|