#!/bin/bash
# TT#62250 Secure past /var/backup/ngcp-mr* created during NGCP upgrades

set -e
set -u

if [[ -z "${BACKUP}" ]] ; then
  echo "ERROR: Missing mandatory environment variable '\$BACKUP', cannot continue!" >&2
  exit 1
fi

backup_base_dir=$(dirname "${BACKUP}")

backup_dirs_new=()
if [[ -d "${backup_base_dir}" ]] ; then
  mapfile -t backup_dirs_new < <(find "${backup_base_dir}" -maxdepth 1 -type d -name 'ngcp-mr*')
fi

# old base dir up until (at least) mr7.5, was /var/backup, so add it if it
# changed
backup_dirs_legacy=()
if [[ "${backup_base_dir}" != "/var/backup" && -d "/var/backup" ]] ; then
  mapfile -t backup_dirs_legacy < <(find "/var/backup" -maxdepth 1 -type d -name 'ngcp-mr*')
fi

backup_dirs=( "${backup_dirs_new[@]}" "${backup_dirs_legacy[@]}" )

if [[ ${#backup_dirs[@]} -eq 0 ]]; then
  echo "INFO: No previous upgrade backup directories found."
  exit 0
fi

echo "INFO: Setting secure ownership and permissions for backup directories from previous upgrades:"
for d in "${backup_dirs[@]}"; do
  echo " - dir: ${d}"
  echo -n "    "
  chown -v root:root "${d}"
  echo -n "    "
  chmod -v 0700 "${d}"
done

echo "INFO: Done setting secure ownership and permissions for backup directory from previous upgrades."
exit 0
