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} ]]
|
if [[ -f ${DATABASE} ]]
|
||||||
then
|
then
|
||||||
if ! sedfile -i "/^${EMAIL}|/d" "${DATABASE}"
|
if ! sedfile --strict -i "/^${EMAIL}|/d" "${DATABASE}"
|
||||||
then
|
then
|
||||||
echo "${UNESCAPED_EMAIL} couldn't be deleted in ${DATABASE}." >&2
|
echo "${UNESCAPED_EMAIL} couldn't be deleted in ${DATABASE}." >&2
|
||||||
ERROR=true
|
ERROR=true
|
||||||
|
@ -126,7 +126,7 @@ do
|
||||||
# remove quota directives
|
# remove quota directives
|
||||||
if [[ -f ${QUOTA_DATABASE} ]]
|
if [[ -f ${QUOTA_DATABASE} ]]
|
||||||
then
|
then
|
||||||
if ! sedfile -i -e "/^${EMAIL}:.*$/d" "${QUOTA_DATABASE}"
|
if ! sedfile --strict -i -e "/^${EMAIL}:.*$/d" "${QUOTA_DATABASE}"
|
||||||
then
|
then
|
||||||
echo "Quota for ${UNESCAPED_EMAIL} couldn't be deleted in ${QUOTA_DATABASE}." >&2
|
echo "Quota for ${UNESCAPED_EMAIL} couldn't be deleted in ${QUOTA_DATABASE}." >&2
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,18 +1,34 @@
|
||||||
#!/bin/bash
|
#!/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
|
set -ueo pipefail
|
||||||
|
|
||||||
HASHTOOL="sha1sum"
|
HASHTOOL="sha1sum"
|
||||||
|
SKIP_ERROR=0
|
||||||
|
|
||||||
if [[ $# -lt 1 ]]
|
if [[ $# -lt 3 ]]
|
||||||
then
|
then
|
||||||
echo "Error: No file given."
|
echo "Error: At least, three parameters must be given."
|
||||||
|
echo "Syntax: sedfile -i <replace/delete operation> <file>"
|
||||||
echo
|
echo
|
||||||
exit 1
|
exit 1
|
||||||
fi >&2
|
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
|
# get last argument
|
||||||
FILE=${*: -1}
|
FILE=${*: -1}
|
||||||
|
|
||||||
|
@ -21,9 +37,10 @@ sed "$@"
|
||||||
NEW=$(${HASHTOOL} "${FILE}")
|
NEW=$(${HASHTOOL} "${FILE}")
|
||||||
|
|
||||||
# fail if file was not modified
|
# fail if file was not modified
|
||||||
if [[ ${OLD} == "${NEW}" ]]
|
if [[ ${OLD} == "${NEW}" ]] && [[ ${SKIP_ERROR} -eq 0 ]]
|
||||||
then
|
then
|
||||||
echo "Error: sed $*"
|
echo "Error: sed $*"
|
||||||
exit 1
|
exit 1
|
||||||
fi >&2
|
fi >&2
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -266,6 +266,9 @@ fix
|
||||||
start_misc
|
start_misc
|
||||||
start_daemons
|
start_daemons
|
||||||
|
|
||||||
|
# marker to check, if container was restarted
|
||||||
|
date > /CONTAINER_START
|
||||||
|
|
||||||
_notify 'tasklog' "${HOSTNAME} is up and running"
|
_notify 'tasklog' "${HOSTNAME} is up and running"
|
||||||
|
|
||||||
touch /var/log/mail/mail.log
|
touch /var/log/mail/mail.log
|
||||||
|
|
|
@ -40,11 +40,17 @@ function _fix_var_amavis_permissions
|
||||||
function _fix_cleanup_clamav
|
function _fix_cleanup_clamav
|
||||||
{
|
{
|
||||||
_notify 'task' 'Cleaning up disabled 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
|
function _fix_cleanup_spamassassin
|
||||||
{
|
{
|
||||||
_notify 'task' 'Cleaning up disabled 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