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.

Reply via email to