mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
Fix harmless startup errors (#2357)
This commit is contained in:
parent
0c31f71358
commit
29c2d975ec
|
@ -101,7 +101,7 @@ do
|
|||
|
||||
if [[ -f ${DATABASE} ]]
|
||||
then
|
||||
if ! sedfile -i "/^${EMAIL}|/d" "${DATABASE}"
|
||||
if ! sedfile --strict -i "/^${EMAIL}|/d" "${DATABASE}"
|
||||
then
|
||||
echo "${UNESCAPED_EMAIL} couldn't be deleted in ${DATABASE}." >&2
|
||||
ERROR=true
|
||||
|
@ -126,7 +126,7 @@ do
|
|||
# remove quota directives
|
||||
if [[ -f ${QUOTA_DATABASE} ]]
|
||||
then
|
||||
if ! sedfile -i -e "/^${EMAIL}:.*$/d" "${QUOTA_DATABASE}"
|
||||
if ! sedfile --strict -i -e "/^${EMAIL}:.*$/d" "${QUOTA_DATABASE}"
|
||||
then
|
||||
echo "Quota for ${UNESCAPED_EMAIL} couldn't be deleted in ${QUOTA_DATABASE}." >&2
|
||||
fi
|
||||
|
|
|
@ -1,18 +1,34 @@
|
|||
#!/bin/bash
|
||||
|
||||
# wrapper for 'sed -i': fail if file was not modified by sed
|
||||
# Wrapper for 'sed -i': fail if file was not modified by sed and container was not restarted.
|
||||
# Error output is surpressed, when container is restarted to avoid harmless error messages.
|
||||
# Use "--strict" as first parameter, to fail regardless of the container state (fresh or restarted).
|
||||
|
||||
# When to use sedfile?
|
||||
# Is a file change optional? --> use regular 'sed -i'
|
||||
# Is a file change expected? --> use 'sedfile --strict -i'
|
||||
# Is a file change only on the first container run expected? --> use 'sedfile -i'
|
||||
|
||||
set -ueo pipefail
|
||||
|
||||
HASHTOOL="sha1sum"
|
||||
SKIP_ERROR=0
|
||||
|
||||
if [[ $# -lt 1 ]]
|
||||
if [[ $# -lt 3 ]]
|
||||
then
|
||||
echo "Error: No file given."
|
||||
echo "Error: At least, three parameters must be given."
|
||||
echo "Syntax: sedfile -i <replace/delete operation> <file>"
|
||||
echo
|
||||
exit 1
|
||||
fi >&2
|
||||
|
||||
[[ -f /CONTAINER_START ]] && SKIP_ERROR=1 # Hide error, if container was restarted.
|
||||
if [[ "${1}" == "--strict" ]] # Show error every time.
|
||||
then
|
||||
SKIP_ERROR=0
|
||||
shift
|
||||
fi
|
||||
|
||||
# get last argument
|
||||
FILE=${*: -1}
|
||||
|
||||
|
@ -21,9 +37,10 @@ sed "$@"
|
|||
NEW=$(${HASHTOOL} "${FILE}")
|
||||
|
||||
# fail if file was not modified
|
||||
if [[ ${OLD} == "${NEW}" ]]
|
||||
if [[ ${OLD} == "${NEW}" ]] && [[ ${SKIP_ERROR} -eq 0 ]]
|
||||
then
|
||||
echo "Error: sed $*"
|
||||
exit 1
|
||||
fi >&2
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -266,6 +266,9 @@ fix
|
|||
start_misc
|
||||
start_daemons
|
||||
|
||||
# marker to check, if container was restarted
|
||||
date > /CONTAINER_START
|
||||
|
||||
_notify 'tasklog' "${HOSTNAME} is up and running"
|
||||
|
||||
touch /var/log/mail/mail.log
|
||||
|
|
|
@ -40,11 +40,17 @@ function _fix_var_amavis_permissions
|
|||
function _fix_cleanup_clamav
|
||||
{
|
||||
_notify 'task' 'Cleaning up disabled ClamAV'
|
||||
rm /etc/logrotate.d/clamav-* /etc/cron.d/clamav-freshclam || _notify 'err' 'Failed to remove ClamAV configuration'
|
||||
rm /etc/logrotate.d/clamav-* /etc/cron.d/clamav-freshclam 2>/dev/null || {
|
||||
# show error only on first container start
|
||||
[[ ! -f /CONTAINER_START ]] && _notify 'err' 'Failed to remove ClamAV configuration'
|
||||
}
|
||||
}
|
||||
|
||||
function _fix_cleanup_spamassassin
|
||||
{
|
||||
_notify 'task' 'Cleaning up disabled SpamAssassin'
|
||||
rm /etc/cron.daily/spamassassin || _notify 'err' 'Failed to remove SpamAssassin configuration'
|
||||
rm /etc/cron.daily/spamassassin 2>/dev/null || {
|
||||
# show error only on first container start
|
||||
[[ ! -f /CONTAINER_START ]] && _notify 'err' 'Failed to remove SpamAssassin configuration'
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue