#!/usr/bin/env bash
# Cifra ~/.ssh con age y guarda el resultado en secrets/sshKeys.tar.gz.age.
# Corré esto en tu máquina actual ANTES de hacer push del repo.
#
# Uso: ./scripts/encryptSsh.sh [ruta-a-.ssh]
set -euo pipefail

stpRoot="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
sshSource="${1:-$HOME/.ssh}"

if [[ ! -d "$sshSource" ]]; then
    echo "Error: directorio no encontrado: $sshSource"
    exit 1
fi

if ! command -v age &>/dev/null; then
    echo "Error: age no está instalado. Instalalo con: sudo apt install age"
    exit 1
fi

mkdir -p "$stpRoot/secrets"
readonly outputFile="$stpRoot/secrets/sshKeys.tar.gz.age"

workingDirectory="$(mktemp -d)"
trap 'rm -rf "$workingDirectory"' EXIT

echo "Empaquetando $sshSource..."
tar -czf "$workingDirectory/sshKeys.tar.gz" -C "$(dirname "$sshSource")" "$(basename "$sshSource")"

echo "Cifrando con age (usá una passphrase segura que puedas recordar)..."
age --passphrase --output "$outputFile" "$workingDirectory/sshKeys.tar.gz"

echo ""
echo "✓ Claves cifradas guardadas en: secrets/sshKeys.tar.gz.age"
echo "  Este archivo es seguro para commitear — está cifrado simétricamente."
echo ""
echo "Para verificar que el cifrado funciona:"
echo "  age --decrypt secrets/sshKeys.tar.gz.age | tar -tzv"
