On Mon, Mar 25, 2019 at 02:27:19PM +0100, Mischa wrote: > > > > On 25 Mar 2019, at 01:40, Stuart Henderson <s...@spacehopper.org> wrote: > > > > On 2019-03-23, Mischa <obs...@high5.nl> wrote: > >> Hi Geir, > >> > >> I have solved this with a little script. > >> > >> ### > >> #!/bin/sh > >> OUT=2 > >> /usr/sbin/acme-client -v www.example.com > >> if test $? -eq 0 > >> then EXT=$? > >> fi > >> /usr/sbin/acme-client -v www.example1.com > >> if test $? -eq 0 > >> then EXT=$? > >> fi > >> if test $EXT -eq 0 > >> then > >> echo "New certificates installed." > >> rcctl restart httpd > >> else echo "No new certificates installed." > >> fi > >> ### > > > > Simpler: > > > > for i in www.example.com www.example1.com; do > > acme-client -v $i && reload=y > > done > > [[ -n $reload ]] && rcctl reload httpd > > Nice!! I have a couple of more domains in there, so the 'for' becomes a > little ugly, but I keep forgetting &&. > It's indeed not needed to use the actual exit code. > > Mischa > >
One could easily write something like this: #!/bin/sh UPDATE=0 for domain in $(awk '/^domain/ { print $2 }' /etc/acme-client.conf) do acme-client $domain if [ $? -eq 0 ]; then UPDATE=1 fi done if [ $UPDATE -ne 0 ]; then rcctl restart httpd dovecot smtpd fi you could also handle the exit status per domain if you want more informations. I did write the script for this mail, it may contains errors.