#!/usr/bin/env bash
set -euo pipefail

RB_CONFIG="${RB_CONFIG:-/etc/ransombackup/client.env}"
if [[ ! -r "${RB_CONFIG}" ]]; then
  echo "Configurazione non leggibile: ${RB_CONFIG}" >&2
  exit 1
fi
# shellcheck disable=SC1090
source "${RB_CONFIG}"
: "${RB_GATEWAY:?RB_GATEWAY mancante}"
: "${RB_USERNAME:?RB_USERNAME mancante}"
: "${RB_BACKUP_TOKEN:?RB_BACKUP_TOKEN mancante}"
: "${RB_SOURCE:?RB_SOURCE mancante}"
: "${RB_CACHE_DIR:?RB_CACHE_DIR mancante}"
: "${RB_PASSWORD_FILE:?RB_PASSWORD_FILE mancante}"

if ! command -v restic >/dev/null 2>&1; then
  echo "restic non installato" >&2
  exit 1
fi
if [[ ! -r "${RB_PASSWORD_FILE}" ]]; then
  echo "Password repository non leggibile: ${RB_PASSWORD_FILE}" >&2
  exit 1
fi

export RESTIC_REPOSITORY="rest:${RB_GATEWAY%/}/${RB_USERNAME}"
export RESTIC_REST_USERNAME="${RB_USERNAME}"
export RESTIC_PASSWORD_FILE="${RB_PASSWORD_FILE}"
export RESTIC_CACHE_DIR="${RB_CACHE_DIR}"

rb_use_backup_token() {
  export RESTIC_REST_PASSWORD="${RB_BACKUP_TOKEN}"
}

rb_clear_secrets() {
  unset RESTIC_REST_PASSWORD
}

trap rb_clear_secrets EXIT
