45 lines
1 KiB
Bash
45 lines
1 KiB
Bash
#!/bin/sh
|
|
|
|
error() {
|
|
>&2 echo "${PROGNAME}: $1"
|
|
exit 1
|
|
}
|
|
debug() {
|
|
if [ "${VERBOSE}" = "1" ] && [ "${QUIET}" != "1" ]; then
|
|
>&2 echo "${PROGNAME}: $1"
|
|
fi
|
|
}
|
|
daemon_found_and_running() {
|
|
test -n "$(pidof dovecot)" && test -n "${doveconf_bin}"
|
|
}
|
|
config_check() {
|
|
${doveconf_bin} > /dev/null 2>&1
|
|
}
|
|
letsencrypt_used() {
|
|
${doveconf_bin} | grep -E "^ssl_cert[^_]" | grep -q "letsencrypt"
|
|
}
|
|
main() {
|
|
if daemon_found_and_running; then
|
|
if letsencrypt_used; then
|
|
if config_check; then
|
|
debug "Dovecot detected... reloading"
|
|
systemctl reload dovecot
|
|
else
|
|
error "Dovecot config is broken, you must fix it !"
|
|
fi
|
|
else
|
|
debug "Dovecot doesn't use Let's Encrypt certificate. Skip."
|
|
fi
|
|
else
|
|
debug "Dovecot is not running or missing. Skip."
|
|
fi
|
|
}
|
|
|
|
readonly PROGNAME=$(basename "$0")
|
|
readonly VERBOSE=${VERBOSE:-"0"}
|
|
readonly QUIET=${QUIET:-"0"}
|
|
|
|
readonly doveconf_bin=$(command -v doveconf)
|
|
|
|
main
|