#!/usr/bin/env bash
# Base backup format plain dengan WAL yang di-stream sekaligus.
set -euo pipefail

TUJUAN=/tmp/pgtutor-bb/plain

# Selalu mulai dari direktori kosong: pg_basebackup menolak direktori berisi.
rm -rf "$TUJUAN"

# -Fp  : format plain, struktur data directory disalin apa adanya
# -Xs  : WAL yang dibutuhkan backup ikut di-stream, backup jadi mandiri
# --checkpoint=fast : checkpoint dijalankan segera supaya backup cepat dimulai
pg_basebackup -D "$TUJUAN" -Fp -Xs --checkpoint=fast --no-password

# Struktur level atas hasil backup harus mencerminkan data directory.
ls -1 "$TUJUAN"

# backup_label menandai backup sah dan mencatat posisi WAL awal.
if [ -f "$TUJUAN/backup_label" ]; then
    echo "backup_label: ADA"
fi

# Versi mayor server yang dibackup.
cat "$TUJUAN/PG_VERSION"

# Selesai: hapus artefak lab.
rm -rf "$TUJUAN"
