2024-05-19 20:40:43 +02:00
|
|
|
#!/usr/bin/env bash
|
2025-03-01 22:27:29 +01:00
|
|
|
set -euo pipefail
|
2024-05-19 20:40:43 +02:00
|
|
|
|
|
|
|
LEGO_BINARY=$(/usr/bin/env which lego)
|
|
|
|
|
2024-08-01 19:59:02 +02:00
|
|
|
if [[ -n "$LEGO_HTTP_FALLBACK_PORT" ]]; then
|
2025-03-01 22:27:29 +01:00
|
|
|
if ! nc_binary="$(type -p \"nc\")" || [[ -z $nc_binary ]]; then
|
|
|
|
echo "nc not found (in PATH), exiting"
|
|
|
|
exit 1
|
|
|
|
fi
|
2024-08-01 19:59:02 +02:00
|
|
|
nc -z 127.0.0.1 $LEGO_HTTP_PORT;
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
|
|
LEGO_HTTP_PORT=$LEGO_HTTP_FALLBACK_PORT
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2025-03-01 22:27:29 +01:00
|
|
|
if [[ -n "$LEGO_PRE_RENEWAL_HOOK" ]]; then
|
|
|
|
$LEGO_PRE_RENEWAL_HOOK
|
|
|
|
fi
|
|
|
|
|
2024-08-01 19:59:02 +02:00
|
|
|
LEGO_COMMAND_ARGS_EXPANDED=$(bash -c "echo $LEGO_COMMAND_ARGS") # This is a bit icky
|
|
|
|
|
2025-03-01 22:27:29 +01:00
|
|
|
FILES_IN_DIR=$(find "$LEGO_CERT_STORE_PATH/certificates" -type f | wc -l)
|
2024-05-19 20:40:43 +02:00
|
|
|
if [[ $FILES_IN_DIR -gt 2 ]]; then
|
2024-08-01 19:59:02 +02:00
|
|
|
$LEGO_BINARY $LEGO_COMMAND_ARGS_EXPANDED renew --days=$LEGO_CERT_DAYS_TO_RENEW
|
2024-05-19 20:40:43 +02:00
|
|
|
else
|
2024-08-01 19:59:02 +02:00
|
|
|
$LEGO_BINARY $LEGO_COMMAND_ARGS_EXPANDED run
|
2024-09-11 17:47:49 +02:00
|
|
|
fi
|
|
|
|
|
2025-03-01 22:27:29 +01:00
|
|
|
find "$LEGO_CERT_STORE_PATH/certificates" -type f | xargs -I{} -n 1 chmod "$LEGO_CERT_MODE" "{}"
|
|
|
|
find "$LEGO_CERT_STORE_PATH/certificates" -type f | xargs -I{} -n 1 chown "${LEGO_CERT_USER}:${LEGO_CERT_GROUP}" "{}"
|
|
|
|
|
|
|
|
if [[ -n "$LEGO_POST_RENEWAL_HOOK" ]]; then
|
|
|
|
$LEGO_POST_RENEWAL_HOOK
|
|
|
|
fi
|