#!/bin/bash

#date: 23/04/2025
#ki: fab
#koi: supprimer de acme.json les certificats LE devenus inutiles

KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
setKazVars
. "${DOCKERS_ENV}"

FILE_ACME_ORI="/var/lib/docker/volumes/traefik_letsencrypt/_data/acme.json"
FILE_ACME="/tmp/acme.json"
FILE_URL=$(mktemp)
FILE_ACME_TMP=$(mktemp)

#l'ip du serveur:
#marche po pour les machines hébergée chez T.C... :( on récupère l'IP dans config/dockers.env
#MAIN_IP=$(curl ifconfig.me)

#DANGER: IP depuis config/dockers.env ne fonctionne pas pour les domaines hors *.kaz.bzh (ex:radiokalon.fr)

#sauvegarde
cp $FILE_ACME_ORI $FILE_ACME
cp $FILE_ACME "$FILE_ACME"_$(date +%Y%m%d_%H%M%S)

#je cherche toutes les url
jq -r '.letsencrypt.Certificates[].domain.main' $FILE_ACME > $FILE_URL

while read -r url; do
  #echo "Traitement de : $url"
  nb=$(dig $url | grep $MAIN_IP | wc -l)
  if [ "$nb" -eq 0 ]; then 
    #absent, on vire de acme.json
    echo "on supprime "$url
    jq --arg url "$url" 'del(.letsencrypt.Certificates[] | select(.domain.main == $url))' $FILE_ACME > $FILE_ACME_TMP
    mv -f $FILE_ACME_TMP $FILE_ACME
  fi
done < "$FILE_URL"

echo "si satisfait, remettre "$FILE_ACME" dans "$FILE_ACME_ORI
