#!/usr/bin/env bash

set -e

tmp_dir=$(mktemp -d)

cd /opt/services/backup/

echo "Restoring backup..."
autorestic -c .autorestic.all.yml restore -l immich_database --from borgbase --to "$tmp_dir"
echo "Backup restored."

cd /opt/services/immich

echo "Starting database..."
docker compose up -d database

echo "Waiting for database to start..."
sleep 10

echo "Restoring database..."
cat "$tmp_dir/opt/services/_backup/immich_database/immich.sql.gz" \
  | gunzip \
  | sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
  | docker exec -i immich-database-1 psql --username=immich
echo "Database restored."

echo "Removing temporary files..."
rm -rf "$tmp_dir"

echo "Starting services..."
docker compose up -d