#!/usr/bin/env bash set -euo pipefail SOURCE_DIR="${MARKDOWN_SOURCE_DIR:-./backend/content/posts}" BACKUP_DIR="${BACKUP_DIR:-./backups/markdown}" RETENTION_DAYS="${RETENTION_DAYS:-30}" TIMESTAMP="$(date -u +%Y%m%dT%H%M%SZ)" FILE_PATH="${BACKUP_DIR}/markdown-${TIMESTAMP}.tar.gz" if [[ ! -d "${SOURCE_DIR}" ]]; then echo "Markdown source directory not found: ${SOURCE_DIR}" >&2 exit 1 fi mkdir -p "${BACKUP_DIR}" tar -czf "${FILE_PATH}" -C "${SOURCE_DIR}" . ln -sfn "$(basename "${FILE_PATH}")" "${BACKUP_DIR}/latest.tar.gz" find "${BACKUP_DIR}" -type f -name 'markdown-*.tar.gz' -mtime +"${RETENTION_DAYS}" -delete echo "Markdown backup written to ${FILE_PATH}"