#! /bin/bash # ? This is done to ignore the message "Make sure not to read and write # ? the same file in the same pipeline", which is a result of ${DATABASE} # ? being used below. (This disables the message file-wide.) # shellcheck disable=SC2094 # shellcheck source=../scripts/helper-functions.sh . /usr/local/bin/helper-functions.sh DATABASE=${DATABASE:-/tmp/docker-mailserver/postfix-accounts.cf} [[ -f ${DATABASE} ]] || errex "Error: No postfix-virtual.cf file" [[ -s ${DATABASE} ]] || errex "Error: Empty postfix-virtual.cf - no aliases have been added" # Lock database even though we are only reading ( flock -e 200 ( grep -v "^\s*$\|^\s*\#" "${DATABASE}" || true ) | awk -F '|' '{ print $1; }' ) 200< "${DATABASE}"