Date: Sat, 11 Jul 2020 12:33:23 +0000 (UTC) From: "Danilo G. Baio" <dbaio@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r541966 - in head/security/py-certbot: . files Message-ID: <202007111233.06BCXNpF027072@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dbaio Date: Sat Jul 11 12:33:23 2020 New Revision: 541966 URL: https://svnweb.freebsd.org/changeset/ports/541966 Log: security/py-certbot: Improve periodic script This change will keep the default behavior in the periodic script and will add options to customize each parameter for those who want to: - weekly_certbot_pre_hook - weekly_certbot_post_hook - weekly_certbot_deploy_hook - weekly_certbot_custom_args PR: 245674, 245954 Reported by: amdmi3, fjoe Reviewed by: koobs Approved by: dbaio, koobs (python, maintainer) MFH: 2020Q3 Differential Revision: https://reviews.freebsd.org/D25391 Added: head/security/py-certbot/files/pkg-message.in - copied, changed from r541965, head/security/py-certbot/pkg-message Deleted: head/security/py-certbot/pkg-message Modified: head/security/py-certbot/Makefile head/security/py-certbot/files/500.certbot.in Modified: head/security/py-certbot/Makefile ============================================================================== --- head/security/py-certbot/Makefile Sat Jul 11 12:24:27 2020 (r541965) +++ head/security/py-certbot/Makefile Sat Jul 11 12:33:23 2020 (r541966) @@ -3,7 +3,7 @@ PORTNAME= certbot PORTVERSION= ${ACME_VERSION} -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES= security python MASTER_SITES= CHEESESHOP @@ -34,7 +34,7 @@ USES= python USE_PYTHON= autoplist concurrent distutils NO_ARCH= yes -SUB_FILES= 500.certbot +SUB_FILES= 500.certbot pkg-message PLIST_FILES= etc/periodic/weekly/500.certbot-${PYTHON_VER} SUB_LIST= PYTHON_VER=${PYTHON_VER} Modified: head/security/py-certbot/files/500.certbot.in ============================================================================== --- head/security/py-certbot/files/500.certbot.in Sat Jul 11 12:24:27 2020 (r541965) +++ head/security/py-certbot/files/500.certbot.in Sat Jul 11 12:33:23 2020 (r541966) @@ -7,11 +7,23 @@ # Add the following lines to /etc/periodic.conf: # # weekly_certbot_enable (bool): Set to "NO" by default -# weekly_certbot_service (str): If defined, certbot will try to -# shutdown this this service before -# renewing the certificate, and restart -# it afterwards. For example, set to -# "nginx" or "apache24" +# weekly_certbot_service (str): If defined, certbot will try to shutdown this +# service before renewing the certificate, and restart it afterwards. +# For example, set to "nginx" or "apache24". This is usually used to avoid +# conflict with the standalone plugin webserver. +# If any of pre_hook or post_hook is set, this behavior is disabled. +# weekly_certbot_pre_hook (str): Command to be run in a shell before obtaining +# any certificates. +# weekly_certbot_post_hook (str): Command to be run in a shell after +# attempting to obtain/renew certificates. +# An example to reload nginx after renewing all certificates. +# weekly_certbot_post_hook="service nginx onereload" +# weekly_certbot_deploy_hook (str): Command to be run in a shell once for each +# successfully issued certificate. +# weekly_certbot_custom_args (str): Any other misc arguments for the renewal +# See certbot -h renew for full list +# An example to force renewal for certificates not due yet +# weekly_certbot_custom_args="--force-renewal" # If there is a global system configuration file, suck it in. # @@ -28,23 +40,41 @@ case "$weekly_certbot_enable" in PRE_HOOK="" POST_HOOK="" - if [ -n "$weekly_certbot_service" ] + DEPLOY_HOOK="" + + if [ -n "$weekly_certbot_service" ] && \ + [ -z "$weekly_certbot_pre_hook" ] && [ -z "$weekly_certbot_post_hook" ]; then - if service "$weekly_certbot_service" onestatus - then - PRE_HOOK="service $weekly_certbot_service onestop" - POST_HOOK="service $weekly_certbot_service onestart" - fi + if service "$weekly_certbot_service" onestatus + then + PRE_HOOK="--pre-hook 'service $weekly_certbot_service onestop'" + POST_HOOK="--post-hook 'service $weekly_certbot_service onestart'" + fi + else + if [ -n "$weekly_certbot_pre_hook" ]; then + PRE_HOOK="--pre-hook '$weekly_certbot_pre_hook'" + fi + + if [ -n "$weekly_certbot_post_hook" ]; then + POST_HOOK="--post-hook '$weekly_certbot_post_hook'" + fi fi + if [ -n "$weekly_certbot_deploy_hook" ]; then + DEPLOY_HOOK="--deploy-hook '$weekly_certbot_deploy_hook'" + fi + anticongestion - if %%LOCALBASE%%/bin/certbot-%%PYTHON_VER%% renew --pre-hook "$PRE_HOOK" \ - --post-hook "$POST_HOOK" \ - --no-random-sleep-on-renew + + eval %%LOCALBASE%%/bin/certbot-%%PYTHON_VER%% renew "$PRE_HOOK" "$POST_HOOK" \ + "$DEPLOY_HOOK" "$weekly_certbot_custom_args" --no-random-sleep-on-renew + if [ $? -gt 0 ] then - rc=0 + echo + echo "Errors were reported when renewing Let's Encrypt certificate(s)." + rc=3 else - rc=1 + rc=0 fi ;; *) rc=0;; Copied and modified: head/security/py-certbot/files/pkg-message.in (from r541965, head/security/py-certbot/pkg-message) ============================================================================== --- head/security/py-certbot/pkg-message Sat Jul 11 12:24:27 2020 (r541965, copy source) +++ head/security/py-certbot/files/pkg-message.in Sat Jul 11 12:33:23 2020 (r541966) @@ -29,6 +29,28 @@ In order to automatically renew the certificates, add /etc/periodic.conf: weekly_certbot_enable="YES" + +More config details in the certbot periodic script: + + %%LOCALBASE%%/etc/periodic/weekly/500.certbot-%%PYTHON_VER%% + +EOM +} +{ + type: upgrade + maximum_version: "1.5.0_2,1" + message: <<EOM +The certbot periodic script has new config options: + + * weekly_certbot_pre_hook + * weekly_certbot_post_hook + * weekly_certbot_deploy_hook + * weekly_certbot_custom_args + +For config details, see the certbot periodic script: + + %%LOCALBASE%%/etc/periodic/weekly/500.certbot-%%PYTHON_VER%% + EOM } ]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202007111233.06BCXNpF027072>