#!/bin/bash

set -euo pipefail

. driglibash-base
here="$(where)"

# For some variables
. /etc/jeancloud.env
. "$here/.env"

# Test secret presence
[ ! -f "$DATA_DIR/rfc2136.ini" ] && echo "$0 Missing file '$DATA_DIR/rfc2136.ini'" && exit 1

export tmp="$(mktemp -d)"
mkdir -p "$tmp/{work,logs}"

# If there is some args, populate a fake service file
if [ "$#" -ge 1 ] && [ -n "$1" ] ; then
	servicefile="$(mktemp)"
	for service in "$@" ; do
		echo "$service _" >> "$servicefile"
	done
fi

# For each service, read all possible domains
while read line ; do
	read -r service target < <(echo "$line")

	# removo dummy cert
	dummy_cert.sh "$service" remove

	[ -d "$DATA_DIR/certs/live/$service" ] && echo "Already exists, thats a job for renew : $service" && continue

	# acme
	"$here/acme-dns.sh" "$service"

	# Replace dummy cert if letsencrypt failed
	[ "$?" -ne 0 ] && dummy_cert.sh "$servic" remove
done < "$servicefile"