git: 678db807ed62 - main - security/acme.sh: fix post-install script

From: Dan Langille <dvl_at_FreeBSD.org>
Date: Sun, 08 Oct 2023 12:25:22 UTC
The branch main has been updated by dvl:

URL: https://cgit.FreeBSD.org/ports/commit/?id=678db807ed62622394f5ce17b7e492a300d10043

commit 678db807ed62622394f5ce17b7e492a300d10043
Author:     Dan Langille <dvl@FreeBSD.org>
AuthorDate: 2023-10-08 12:22:15 +0000
Commit:     Dan Langille <dvl@FreeBSD.org>
CommitDate: 2023-10-08 12:25:19 +0000

    security/acme.sh: fix post-install script
    
    The install script contained a syntax error which caused the log file
    to not be created.
    
    While here:
    
    * rename script from pkg-install to pkg-post-install
    * include another crontab example which provides additional contet to
      logging.
    
    PR:             274348
---
 security/acme.sh/Makefile              |  1 +
 security/acme.sh/files/acme-crontab.in | 24 +++++++++++++++++++++---
 security/acme.sh/pkg-install           | 11 -----------
 security/acme.sh/pkg-post-install      |  7 +++++++
 4 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/security/acme.sh/Makefile b/security/acme.sh/Makefile
index 47af0b99895c..7b383a071e92 100644
--- a/security/acme.sh/Makefile
+++ b/security/acme.sh/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	acme.sh
 PORTVERSION=	3.0.7
+PORTREVISION=	1
 CATEGORIES=	security
 
 MAINTAINER=	dvl@FreeBSD.org
diff --git a/security/acme.sh/files/acme-crontab.in b/security/acme.sh/files/acme-crontab.in
index ffde51de652f..7793b84a8bf9 100644
--- a/security/acme.sh/files/acme-crontab.in
+++ b/security/acme.sh/files/acme-crontab.in
@@ -1,5 +1,5 @@
 #
-# This file should be copied to /usr/local/etc/cron.d/acme
+# This file should be copied to %%PREFIX%%/etc/cron.d/acme
 
 # use /bin/sh to run commands, overriding the default set by cron
 #SHELL=/bin/sh
@@ -7,6 +7,24 @@
 # mail any output to here, no matter whose crontab this is
 #MAILTO=me@example.org
 
-# set mm and hh to the time (e.g. hh:mm) of day you want the
-# cronjob to run
+# uncomment, set mm and hh to the time (e.g. hh:mm) of day you want the
+# cronjob to run - pick one of the following and enable it. Running more
+# than one won't hurt, but you should avoid running them concurrently.
+#
+# the lockf ensures only one runs at a time if for some reason it never completes.
+# I tend to do this for most cronjobs.
+
+
+# This will send only errors to your email, everything else goes to /dev/null
+# I find it lacks context.
 mm hh * * * %%ACME_USER%% %%PREFIX%%/sbin/acme.sh --cron --home /var/db/acme/.acme.sh  > /dev/null
+
+#
+# This dumps STDERR and STDOUT to a file and should never generate an email.
+# The resulting log file shows any errors in context, which I found more useful for debugging.
+# I set this file to rotate daily, since the cronjob also runs daily.
+# I still get email if something goes wrong, via the SAVED_MAIL_FROM and
+# SAVED_MAIL_TO options in account.conf - I also use NOTIFY_HOOK='pushover,mail'
+# which requires setting SAVED_PUSHOVER_TOKEN and SAVED_PUSHOVER_USER.
+#
+mm hh * * * %%ACME_USER%% /usr/bin/lockf -t 0 /tmp/.acme.sh.cronjob %%PREFIX%%/sbin/acme.sh --cron --home /var/db/acme/.acme.sh  >  /var/log/acme.sh.cronjob.log 2>&1
diff --git a/security/acme.sh/pkg-install b/security/acme.sh/pkg-install
deleted file mode 100644
index 63e21b1daa57..000000000000
--- a/security/acme.sh/pkg-install
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-case $2 in
-	POST-INSTALL)
-		# create the log file, if it does not exist
-		if [ !-f /var/log/acme.sh.log ]
-		then
-			/usr/bin/install -C -m 640 -o acme -g acme /dev/null /var/log/acme.sh.log
-		fi
-		;;
-esac
diff --git a/security/acme.sh/pkg-post-install b/security/acme.sh/pkg-post-install
new file mode 100644
index 000000000000..7f1b8ddddc63
--- /dev/null
+++ b/security/acme.sh/pkg-post-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# create the log file, if it does not exist
+if [ ! -f /var/log/acme.sh.log ]
+then
+	/usr/bin/install -C -m 640 -o acme -g acme /dev/null /var/log/acme.sh.log
+fi