captaincore/app/backup/list-generate
2023-10-08 08:25:47 -04:00

55 lines
No EOL
1.5 KiB
Bash

#!/usr/bin/env bash
#
# Generates list of snapshots for a site from a backup repo
#
# `captaincore backup list-generate <site>`
#
if [ ${#@} -eq 0 ]; then
echo -e "${COLOR_RED}Error:${COLOR_NORMAL} Requires a <site>"
exit
fi
while read config; do
if [[ "$config" == "Error:"* ]]; then
continue
fi
declare "$config"
done <<< "$(php ${CAPTAINCORE_PATH}/lib/local-scripts/configs.php fetch)"
site=$1
run_command() {
# Extract environment
if [[ "$site" == *"-staging"* ]]; then
environment=staging
fi
if [[ "$site" == *"-production"* ]]; then
environment=production
fi
if [[ "$site" != *"-"* ]]; then
environment=production
fi
# Load site configs
while read site_configs; do if [[ $site_configs == "" ]]; then continue; fi; declare "$site_configs"; done <<< "$(captaincore site get $site --bash --captain-id=$CAPTAIN_ID)"
if [[ $( restic snapshots --repo rclone:$rclone_backup/${site}_${site_id}/${environment}/restic-repo --password-file="${CAPTAINCORE_PATH}/data/restic.key" ) == "" ]]; then
echo -e "${COLOR_RED}Error:${COLOR_NORMAL} Backup repo not found."
exit 1
fi
mkdir -p $path/${site}_${site_id}/${environment}/backups/
backup_list="$path/${site}_${site_id}/${environment}/backups/list.json"
cd ${CAPTAINCORE_PATH}/data
echo "Generating ${site}_${site_id}/${environment}/backups/list.json"
wp eval-file ${CAPTAINCORE_PATH}/lib/local-scripts/backups-list.php site=$site site_id=$site_id environment=$environment > "$backup_list"
}
run_command