30 lines
		
	
	
		
			796 B
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			796 B
		
	
	
	
		
			Bash
		
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
set -eo pipefail
 | 
						|
 | 
						|
[[ ! $# -eq 1 ]] && echo "Usage: $0 backup_number" && exit 1
 | 
						|
[[ -z "${BACKUP_DIR}" ]] && echo "Required 'BACKUP_DIR' env not set" && exit 1;
 | 
						|
[[ -z "${JENKINS_HOME}" ]] && echo "Required 'JENKINS_HOME' env not set" && exit 1;
 | 
						|
 | 
						|
backup_number=$1
 | 
						|
backup_file="${BACKUP_DIR}/${backup_number}"
 | 
						|
echo "Running restore backup with backup number #${backup_number}"
 | 
						|
 | 
						|
if [[ -f "$backup_file.tar.gz" ]]; then
 | 
						|
    echo "Old format tar.gz found, restoring it"
 | 
						|
    OPTS=""
 | 
						|
    EXT="tar.gz"
 | 
						|
elif [[ -f "$backup_file.tar.zstd" ]]; then
 | 
						|
    echo "Backup file found, proceeding"
 | 
						|
    OPTS="--zstd"
 | 
						|
    EXT="tar.zstd"
 | 
						|
else
 | 
						|
  echo "ERR: Backup file not found: $backup_file"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
tar $OPTS -C "${JENKINS_HOME}" -xf "${BACKUP_DIR}/${backup_number}.${EXT}"
 | 
						|
 | 
						|
echo Done
 | 
						|
exit 0
 |