#!/bin/bash

function dump() {
    echo "$(date) Dumping certificates"

    traefik-certs-dumper file --version ${TRAEFIK_VERSION:-v1} --crt-name "cert" --crt-ext ".pem" --key-name "key" --key-ext ".pem" --domain-subdir --dest /tmp/work --source /traefik/acme.json > /dev/null

    if [[ -f /tmp/work/${DOMAIN}/cert.pem && -f /tmp/work/${DOMAIN}/key.pem && -f /output/cert.pem && -f /output/key.pem ]] && \
	diff -q /tmp/work/${DOMAIN}/cert.pem /output/cert.pem >/dev/null && \
	diff -q /tmp/work/${DOMAIN}/key.pem /output/key.pem >/dev/null ; \
    then
	echo "$(date) Certificate and key still up to date, doing nothing"
    else
	echo "$(date) Certificate or key differ, updating"
	mv /tmp/work/${DOMAIN}/*.pem /output/
    fi
}

mkdir -p /tmp/work
dump

while true; do
    inotifywait -qq -e modify /traefik/acme.json
    dump
done